我正在創建一個需要用戶在Main_Activity.xml中輸入姓名,電子郵件,日期等的應用程序。然後,用戶將點擊提交。輸入的數據將顯示在confirm.xml中。在confirm.xml中,用戶需要驗證輸入的數據,如果想編輯輸入的數據,他們將點擊返回按鈕重新編輯數據。我試圖做到這一點,但一旦我點擊後退按鈕,我在editText字段中輸入的所有數據都消失了。我想保留在MainActivity.xml的editText字段中輸入的數據,所以我只能更改需要編輯的某些字段。我怎樣才能做到這一點?謝謝。如何在edittext字段中輸入文字?
回答
您可以覆蓋onSaveInstanceState(Bundle savedInstanceState)
函數,並使用savedInstanceState保存在onCreate(Bundle instanceState)
或onRestoreInstanceState(Bundle instanceState)
期間想要取回的各種數據。
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString("TextFieldX", "Data To Retrieve");
}
而且把它找回來:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
//get back value
String value = savedInstanceState.getString("TextFieldX");
}
https://developer.android.com/reference/android/os/Bundle.html
爲您的數據的壽命更長持久性,你把它寫入SQLite。
謝謝你的建議。我會試一試。 – jdk
當您輸入數據的活動被破壞時,可能會發生這種情況。你如何打開新的確認活動?這是可能包含錯誤的代碼的一部分。
如果您在打開新的活動時致電finish()
,那麼活動將被銷燬並且數據保留在EditText
中。
要打開一個新的活動並保留當前數據,您只需撥打startActivity(...)
而不需要finish()
。
Intent intent = new Intent(context, ConfirmationActivity.class);
startActivity(intent);
無論如何,活動可以通過android來銷燬,以在需要時釋放內存。當您打開另一個需要內存但應用程序使用內存的應用程序時,會發生這種情況,因此係統會破壞您的活動,並且由您使用Bundles
並將其恢復並保存在磁盤上。
我建議你閱讀本指南https://developer.android.com/guide/components/activities/activity-lifecycle.html
謝謝你的建議。我會試一試。 – jdk
您可以保存所有信息以字符串的像私人字符串名稱;
if(name != null && !name.toString().isEmpty()) {
set name String on your editText widget.
}
您可以使用共享偏好的對象保存在用戶的手機的EditText值的值: 寫入/當用戶輸入的名稱,並再次使用它像如下設置此名稱。代碼執行第二次時,您只需檢查共享首選項中的變量。如果變量不爲空,則從中獲取值並使用setText()方法設置該字符串。
- 1. EditText字段沒有輸入
- 2. 在EditText上輸入時在視圖中添加EditText字段
- 3. Android EditText:輸入文字
- 4. Android:在用戶輸入EditText時創建倒數字段字段
- 5. 如何在輸入字段中顯示文本字段?
- 6. 同時輸入兩個edittext字段
- 7. 如何設置僅用於在Android中輸入字母的edittext字段?
- 8. 無法在edittext上輸入文字android
- 9. 如何在EditText中輸入彩色文字
- 10. 如何在輸入字段中只輸入10個數字?
- 11. 如何將圖像放入EditText字段?
- 12. 在文本輸入字段
- 13. 如何在文本字段中顯示輸入的數字?
- 14. 如何在此用戶名字段中輸入文字
- 15. 如何在h1中輸入字段值?
- 16. 編號在輸入時不顯示在editText字段中(Android 2.2)
- 17. 阻止用戶在輸入字段中輸入文字
- 18. 在AS3中輸入文本字段中輸入按鍵輸入
- 19. 輸入文件字段輸入文本字段
- 20. 如何從Android的EditText字段獲取輸入?
- 21. 刪除輸入字段中的文字
- 22. 輸入字段被清空後如何刪除輸入字段
- 23. 如何在文本字段中的initcap中輸入文本?
- 24. 如何在多個輸入字段中獲取字段索引?
- 25. 如何創建文本輸入字段
- 26. 如何在輸入文字後將焦點放在字段上?
- 27. Android - 在editText字段中沒有輸入時程序崩潰
- 28. 如何在輸入字段中插入文本
- 29. Android EditText無法輸入文字
- 30. android EditText輸入文字滯後
讓我看看您的代碼 –
您是否清除數據? –
不要在mainactivity中使用類似'finish()'的關鍵字 –