2

当用户旋转屏幕时,我需要保存我的应用程序实例。我使用了切换按钮“inst”、图像按钮“播放”和单选按钮“sp”。这是我的代码:

public void onSaveInstanceState(Bundle outState)
        {
         outState.putBoolean("play",play);
         outState.putBoolean("inst", inst);
         outState.putBoolean("sp",sp);         /* shows the error "the method put boolean in 
                                                 type bundle is not applicable for radio buttons"*/          
         super.onSaveInstanceState(outState);

        }

那么我们应该为单选按钮使用什么?当我用谷歌搜索时,我得到的结果说我们必须使用偏好活动。然后在我的情况下,我必须更改我当前布局中的所有元素。任何其他解决方案都会有很大帮助。

4

3 回答 3

4

您只需将布尔值放入 Bundle.putBoolean 方法中,而您将 RadioButton、ToggleButton 放入其中。因此,通过获取 isChecked 属性将您的代码更改为以下方法,而不是在此方法中传递视图对象传递状态:

public void onSaveInstanceState(Bundle outState)
        {
         //outState.putBoolean("play",play);//are you sure its ImageButton if It is, you cant get State  of it in boolean 
         outState.putBoolean("inst", inst.isChecked());
         outState.putBoolean("sp",sp.isChecked());                  
         super.onSaveInstanceState(outState);

        }
于 2012-08-31T04:29:33.230 回答
0

我认为您需要使用isChecked()如下代码中的单选按钮方法,

public void onSaveInstanceState(Bundle outState)
{
            outState.putBoolean("play",play.isChecked());
            outState.putBoolean("inst", inst.isChecked());
            outState.putBoolean("sp",sp.isChecked());      
           super.onSaveInstanceState(outState);
}
于 2012-08-31T04:26:01.220 回答
0

您应该sp使用isChecked()方法检查您的单选按钮。

于 2012-08-31T04:37:07.293 回答