Инициализация действий для кнопок, которые не отображаются на экране

У меня есть активность, в которой может присутствовать кнопка buttonA или buttonB.

В пейзажной кнопке А присутствует В портретной кнопке B присутствует

Мой код в действии onCreate ниже

Button nextToBtnA = (Button) findViewById(R.id.btnA);
if (nextToBtnA != null ){
 nextToBtnA.setOnClickListener(new View.OnClickListener() {
 public void onClick(View v) {
 //do button A stuff
 }});
}
Button nextToBtnB = (Button) findViewById(R.id.btnB);
if (nextToBtnB != null ){
 nextToBtnB.setOnClickListener(new View.OnClickListener() {
 public void onClick(View v) {
 //do button B stuff
 }});
}

Моя проблема в том, что если я начну свою деятельность в ландшафте, то я буду исполнять только кнопку А. Если я перехожу к портрету, то buttonB event listener не был выполнен, поэтому нажатие на него ничего не делает.

Как я могу заставить его перерегистрировать прослушиватели событий при изменении ориентации.

заранее спасибо

1 ответ

Как я могу заставить его перерегистрировать прослушиватели событий при изменении ориентации.

Удалите атрибут android:configChanges в этом android:configChanges в манифесте, чтобы ваша активность была уничтожена и воссоздана. В новом примере вашей активности логика onCreate() снова запустится, и вы правильно настроите свой интерфейс.

licensed under cc by-sa 3.0 with attribution.