2012-10-22 104 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