旋转后碎片崩溃

时间:2019-07-08 21:16:52

标签: android sqlite

该应用在两种模式(垂直/水平)下均可正常加载,但在旋转时会崩溃。

我正在使用sqlit,所以在开始片段之前,使用设置器,先设置其Cursor变量,然后再启动它。 从调试时看到的结果看,即使setter在“工作”,该片段后来也崩溃了,因为其Cursor为空

主要活动

db=new DataBaseHelper(getApplicationContext());
        Fragment fragment = new gallery();
        ((gallery) fragment).setmCursor(db.getAll());

        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.replace(R.id.main_fragment_layout,fragment);
        transaction.commit();

1 个答案:

答案 0 :(得分:0)

无论何时旋转应用程序,活动都会暂时超出范围。这可以将许多局部变量设置为null。我通常创建一个称为RestoreAll()的方法。在这种方法中,我将所有文本框,按钮等膨胀,然后重新初始化它们。我还调用创建需要从中创建列表的任何列表数组或数据库游标。我从onResume()方法调用RestoreAll()。第一次加载活动时,在onCreate()方法之后立即调用onResume。然后,如果旋转了屏幕,则会再次调用onResume(),因此,它将再次调用RestoreAll()。并非所有内容都将设置为null,但这是一种确保活动恢复时重新填充所有内容的简便方法。