2012-10-22 65 views
1

我在我的应用程序中使用了一个SQLiteDatabase,这是我手动创建的,然后在android应用程序中使用它。为了浏览它,我使用了一个Cursor。我在编辑文本中显示来自行的结果。防止由于方向变化导致的android状态变化

当方向改变时,不管显示的行如何,第一行显示在编辑文本中。我知道android重新创建方向更改的活动并再次调用onCreate()方法。

但是根据documentation,我不应该在onRetainNonConfigurationInstance()中存储游标对象,因为它使用上下文。

这里是创建光标的代码。

DataBaseHelper myDbHelper = new DataBaseHelper(this); 
Cursor c=myDbHelper.getDatabase().rawQuery("SELECT * FROM mytable",null); 

另一个推荐的方法是手工处理的变化,但我不想这样做,因为我想在UI的默认调整的优势。

如何在方向更改时继续使用同一行?

回答

1

其中一个最简单的方法就是在您的清单文件中添加这(对有关活动) -

android:configChanges="orientation|screenSize|keyboardHidden" 
+0

我已经试过这一点。应用程序仍然从方向更改开始重新开始。而且在文档中,这种方法被要求用作最后的手段。 – krammer

+0

在这种情况下,您不需要实现onRetainNonConfigurationInstance()。 –

+0

谢谢。我试过除屏幕以外的所有东西。 – krammer