#java #android #android_button
Как добавить в активити еще один слушатель ToggleButton для второй кнопки? Вот как
я использую одну кнопку (к сожалению, в учебниках обычно приводят примеры на одну кнопку)
public class XXX extends ActionBarActivity implements OnCheckedChangeListener {
ToggleButton tbutton1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_xxx);
tbutton = (ToggleButton) findViewById(R.id.tbutton1);
}
//...
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean tg1) {
if (tg1) {
// ...
}};
Ответы
Ответ 1
Есть несколько способов, вот некоторые из них: В каждый обработчик в качестве параметра приходит view для которого произошло данное событие. Следовательно у полученного view можно взять id и в зависимости от этого выполнить те или иные действия. @Override public void onCheckedChanged(CompoundButton buttonView, boolean tg1) { switch(buttonView.getId()) { case R.id.toggle1: //событие от первой кнопки, делаем А break; case R.id.toggle2: //событие от второй кнопки, делаем Б break; default: break; } } Для каждой view создавать обработчик как экземпляр анонимного класса private OnCheckedChangeListener toggle1Listener = new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean tg1) { //делаем А } } private OnCheckedChangeListener toggle2Listener = new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean tg1) { //делаем Б } } //установка в методе onCreate() toggle1.setOnCheckedChangeListener(toggle1Listener); toggle2.setOnCheckedChangeListener(toggle2Listener); UPD: забыл сказать что для второго случая нет необходимости реализовывать интерфейс OnCheckedChangeListener в Activity
Комментариев нет:
Отправить комментарий