0

我有两个活动单选按钮。我正在通过在两个 if 条件中使用 isChecked() 方法来检查在活动类的 onCreate 方法中选择了哪个单选按钮。问题是当我通过倾斜设备来改变设备的方向时。检查不起作用。在横向中,我选择了第二个单选按钮,当我在 onCreate 中将设备倾斜到纵向模式时,控件将进入第一个 if 条件。IE,

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();
}

是什么原因以及如何纠正?

4

4 回答 4

0

当您旋转屏幕时,它将直接转到 onCreate 方法

如果您已经在您的 java 代码(在您的 Android 活动类中)中 @Override onConfigurationChanged() 函数来处理 Android 屏幕方向更改。然后,您的活动将永远不会因任何屏幕方向更改而重新启动。或者您可以通过以下代码从清单中关闭方向

    android:configChanges="orientation"
        android:screenOrientation="portrait"
于 2013-10-08T07:36:59.310 回答
0

在您的清单活动中尝试此代码,

android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:windowSoftInputMode="adjustPan"
于 2013-10-08T07:34:37.763 回答
0

在你的清单中试试这个..

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

因为当方向改变时,当前活动会重新启动,这就是它发生的原因..试试上面的代码..

于 2013-10-08T07:39:31.553 回答
0

尝试在 java 中管理单选按钮的可聚焦属性。或者只是让两个单选按钮都可以聚焦=“假”;

于 2013-10-08T07:39:40.607 回答