小编ran*_*ity的帖子

片段saveInstanceState在方向更改后变为null

我有一个带有操作栏标签的活动.每个选项卡包含一个片段.现在当我旋转我的设备时,我相应片段中的bundle将变为null.当我使用设备发布android 3.2时,这很小心,但它是在设备是Andoird3.0时发生的.在解决这个问题之后我很头疼.我在SO上检查了各种链接,但没有帮助.虽然我已经提供了足够的细节,但仍会提供一些代码片段,因为在用户要求代码片段的各种情况下.

在我的片段类中,我存储了这个值

 @Override
    public void onSaveInstanceState(Bundle outState)
    {
        super.onSaveInstanceState(outState);
        outState.putBoolean("textboxVisible", true);
    }
Run Code Online (Sandbox Code Playgroud)

这是存储一个布尔变量,它按如下方式重新检索.

/**
 * Function called after activity is created. Use this
 * method to restore the previous state of the fragment
 */
     @Override
public void onActivityCreated(Bundle savedInstanceState)
{
    super.onActivityCreated(savedInstanceState);
    if (savedInstanceState != null) 
    {
        //restore the state of the text box
        boolean textboxVisible = savedInstanceState.getBoolean("textboxVisible");
        if (textboxVisible) 
        {
            //do some stuff
        }                   
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在旋转后,savedInstanceState将变为 null.我不是出了什么问题.我在一些文档中读到,在3.2以下,片段的onCreateView()没有使用bundle值调用.但要解决这个问题.任何帮助将不胜感激.

android android-fragments

11
推荐指数
1
解决办法
3772
查看次数

关闭活动完成对话框

在我的应用程序中,我有几个活动一个接一个。在我的登录屏幕之后,我有主屏幕,然后是几个屏幕。现在,当用户选择设备主页按钮或电源关闭按钮时,我想在用户再次访问我的应用程序和主页屏幕时显示登录屏幕。休息所有活动,我正在从我的基类完成它。现在到这里我已经完成了,我的问题是当我在其他一些活动中显示一个对话框时,如果用户点击主页或电源按钮,那么我会收到WINDOW LEAKED EXCEPTION

在此处输入图片说明

就像我有 TempActivity 正在显示一个对话框并且用户单击主页按钮这样 StoreActivity 和 TempActivity 将完成但对话框从未有机会被解雇。那么处理这种情况的最佳方法是什么。有没有更好的方法来关闭对话框,这样我就不会出现任何异常。

android android-dialog

5
推荐指数
1
解决办法
6241
查看次数