#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
Комментариев нет:
Отправить комментарий