Как добавить в активити еще один слушатель 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) {
// ...
}};
Ответ
Есть несколько способов, вот некоторые из них:
В каждый обработчик в качестве параметра приходит 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
Комментариев нет:
Отправить комментарий