2012-09-12 117 views
1

我在我自己的小部件中有兩個片段。這些小部件具有編輯文本和文本視圖。如果我編寫一些東西來編輯文本和旋轉顯示,文本會出現在兩個編輯文本中。如果我寫文本到上面的編輯文本和旋轉顯示,文字消失。我認爲這是由於編輯文本具有相同的ID而引起的。有沒有更好的解決方案,比保存兩個edittext中的文本並在m yown上恢復它?旋轉顯示後恢復狀態

回答

1

是的。

您需要覆蓋onSavedInstanceState(Bundle state)並將視圖的值保存到state包中。

然後,在onCreateonRestoreInstanceState重新填充您在上述兩種方法中傳遞的包的值。您的意見是有時可能會重新填充,但情況並非總是如此。

+0

是的,我熟悉這種方法,但我的問題是,如果是沒有辦法讓Android爲我做的。因爲如果您使用不同的ID編輯文本,它可以工作。但由於我自己的小部件,我不能有不同的ID – Billda

+0

你應該實現['onSaveInstanceState'](http://developer.android.com/reference/android/view/View.html#onSaveInstanceState())然後呢? – hwrdprkns

+0

當片段設置爲保留實例時,bundle中的onCreateView和onViewCreated爲null。 – Billda

0

你也可以把這個在您的manifest.xml

android:configChanges="orientation" 
+0

這不是最佳實踐 – Billda