Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Как разместить в одном активити 2 кнопки ToggleButton

#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

Комментариев нет:

Отправить комментарий