该应用在两种模式(垂直/水平)下均可正常加载,但在旋转时会崩溃。
我正在使用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();
答案 0 :(得分:0)
无论何时旋转应用程序,活动都会暂时超出范围。这可以将许多局部变量设置为null。我通常创建一个称为RestoreAll()的方法。在这种方法中,我将所有文本框,按钮等膨胀,然后重新初始化它们。我还调用创建需要从中创建列表的任何列表数组或数据库游标。我从onResume()方法调用RestoreAll()。第一次加载活动时,在onCreate()方法之后立即调用onResume。然后,如果旋转了屏幕,则会再次调用onResume(),因此,它将再次调用RestoreAll()。并非所有内容都将设置为null,但这是一种确保活动恢复时重新填充所有内容的简便方法。