Состояние кнопки на разных макетах в одном действии? - PullRequest
1 голос
/ 29 января 2012

У меня есть 2 кнопки для переключения между 2 макетами в одном и том же упражнении: нажатие кнопки 1 на макете 1 переходит к макету 2 (с использованием setContentView). На layout2, нажав кнопку2, он возвращается к layout1. Тогда button1 больше не отвечает OnClickListener. Я изучил «Входные события», но все еще не мог понять это Что случилось и как это исправить?

Заранее спасибо!

Button submitBtn;
Button backBtn;
submitBtn = (Button)findViewById(R.id.button1); //on layout1
backButn = (Button)findViewById(R.id.button2);  //on layout2
submitBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
          setContentView(R.layout.layout2);
                    }
    });
backBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
          setContentView(R.layout.layout1);
                   }
    });

Ответы [ 2 ]

1 голос
/ 29 января 2012

Вы должны переназначить слушателей при переключении раскладки, потому что при вызове setContentView старое представление разрушается, и создаются новые компоненты.

0 голосов
/ 29 января 2012

Вы ДОЛЖНЫ установить представление содержимого, когда пришло время изменить макет, иначе представления будут нулевыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...