Как получить событие на андроид пометить флажок поменять? - PullRequest
49 голосов
/ 30 июня 2010

Каким будет правильный способ получения и отправки события, когда флажок включен или отключен?

В C # я мог бы просто легко щелкнуть дважды, и весь код был бы сделан для меня. Но в андроиде это выглядит немного неясным. Я думал об использовании сенсорных обработчиков событий, но тогда, если у пользователя есть клавиатура, он не обнаружит изменения, поскольку он не сенсорный. Я полагаю, что андроид должен иметь собственное событие для изменения состояния флажка.

Ответы [ 3 ]

142 голосов
/ 30 июня 2010
CheckBox repeatChkBx = ( CheckBox ) findViewById( R.id.repeat_checkbox );
repeatChkBx.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if ( isChecked )
        {
            // perform logic
        }

    }
});
6 голосов
/ 30 мая 2016

Поскольку CheckBox (в конечном итоге) расширяет View, вы можете использовать стандартный OnClickListener для определения, когда CheckBox действительно подключается пользователем (в отличие от обновлений ListView):

CheckBox repeatChkBx = ( CheckBox ) findViewById( R.id.repeat_checkbox );
repeatChkBx.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        if ( ((CheckBox)v).isChecked() ) {
            // perform logic
        }
    }
});
0 голосов
/ 23 мая 2017

Попробуйте это

CheckBox checkbox=(CheckBox)findViewById(R.id.checkbox);
checkbox.setOnClickListener(new View.OnClickListener()
{
        @Override
        public void onClick(View v)
        {
            if (checkbox.isChecked())
            {
             //Perform action when you touch on checkbox and it change to selected state
            }
            else
            {
   //Perform action when you touch on checkbox and it change to unselected state
            }
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...