Выбор радиокнопки не работает в методе onCreate()

У меня есть два радиокнопки в действии. Я проверяю, какая радиокнопка выбрана в методе onCreate класса активности, используя метод isChecked() в двух условиях if. Проблема в том, что когда я меняю ориентацию устройства, наклоняя устройство. Чек не работает. В альбомной ориентации я выбрал второй переключатель, и когда я наклонил устройство в портретный режим в onCreate, элемент управления переходит в первое условие if. т.е.,

if(rdo1.isChecked()) {
    Toast.makeText(MyActivity.this, "RadioButton1", Toast.LENGTH_LONG).show();
}

На самом деле это должно перейти ко второму условию if:

if(rdo2.isChecked()) {
    Toast.makeText(MyActivity.this, "RadioButton2", Toast.LENGTH_LONG).show();
}

В чем причина и как исправить?


person Sundeep    schedule 08.10.2013    source источник


Ответы (4)


Попробуйте этот код в своей активности манифеста,

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:windowSoftInputMode="adjustPan"
person shiju B    schedule 08.10.2013

Когда вы поворачиваете экран, он сразу переходит к методу onCreate.

Если вы уже @Override функцию onConfigurationChanged() в своем Java-коде (в своем классе активности Android) для обработки изменения ориентации экрана Android. Тогда ваша активность никогда не будет перезапускаться при любых изменениях ориентации экрана. или вы можете закрыть ориентацию из манифеста, следуя коду

    android:configChanges="orientation"
        android:screenOrientation="portrait"
person Ameer    schedule 08.10.2013

Попробуйте это в своем манифесте.

 <activity android:name="Your Activity"
             android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:windowSoftInputMode="adjustPan"/>

потому что при изменении ориентации текущая активность перезапускается, поэтому это происходит.. попробуйте этот код выше..

person Hariharan    schedule 08.10.2013

Попробуйте управлять фокусируемым свойством переключателей в java. или просто сделайте оба переключателя focusable="false";

person Ajay    schedule 08.10.2013