Каков будет правильный способ получения и отправки события, когда флажок активируется или отключается. В С# я мог бы просто щелкнуть дважды, и весь код будет сделан для меня. но в андроиде это кажется немного более неясным. Я думал об использовании обработчиков событий касания, но тогда, если у пользователя есть клавиатура, он не обнаружит изменения, так как он не коснется. Я считаю, что андроид должен иметь собственное событие для изменения состояния флажка.
Как получить событие на анкете checkbox check change?
Ответ 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
}
}
});