Подтвердить что ты не робот

Как получить событие на анкете checkbox check change?

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

4b9b3361

Ответ 1

CheckBox repeatChkBx = ( CheckBox ) findViewById( R.id.repeat_checkbox );
repeatChkBx.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if ( isChecked )
        {
            // perform logic
        }

    }
});

Ответ 2

Так как CheckBox (в конечном итоге) расширяет представление, вы можете использовать стандартный 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
        }
    }
});

Ответ 3

Попробуйте

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
            }
        }
    });