Отключить кнопки на основе выбора счетчика - PullRequest
1 голос
/ 17 апреля 2011

Итак, у меня есть кнопки (не программная клавиатура) на экране, но я хочу, чтобы некоторые из них были отключены (не может щелкать), когда вы выбираете определенную опция блесны . Как у меня есть кнопки 0-9 (для числового ввода), и если выбрана «База 2» (выбор счетчика 0), я хочу, чтобы все кнопки, кроме 0 и 1, были отключены.

Ответы [ 2 ]

1 голос
/ 17 апреля 2011

Spinner не поддерживает setOnItemClickListener.Если вы попытаетесь использовать его, вы получите исключение:

java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner

Как таковое, вы должны использовать setOnItemSelectedListener:

    spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int position, long id) {
            Toast.makeText(MyActivity.this, "position= "+position+" / id= "+id, Toast.LENGTH_LONG).show();
            switch(position) {
            case 0:
                button0.setClickable(true);
                button1.setClickable(false);
                break;
            case 1:
                button0.setClickable(false);
                button1.setClickable(true);
                break;
            }
        }
        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
        }});
1 голос
/ 17 апреля 2011

Вы можете добавить OnItemClickListener и реагировать на опцию, которая указана, например, таким образом

spinner.setOnItemClickListener(new AdapterView.OnItemSelectedListener() 
    {           
        @Override
            public void onItemSelected(AdapterView<?> parent, 
                View view, int position, long id) {

                if(position == 1) 
                    button.setClickable(false);
            }

    });
...