在Android模拟器中观察我的应用程序行为,发现EditText内容在更改屏幕方向(Ctrl + F11)后保留。但是TextView的内容被重置为其初始值,并且不保存程序设置的最新信息。这是行为的定义吗?我能做些什么来保存这些内容?更改屏幕方向后,TextView内容丢失
9
A
回答
11
使用此属性在您的TextViewandroid:freezesText="true"
。
3
当方向发生变化时,Android会重新加载Activity,从而破坏大多数信息,如TextView的变化。您将需要覆盖onSaveInstanceState()
,这将在屏幕方向更改发生之前运行。然后,您将在Bundle
中访问它,并将其传递到onCreate
。您还应该参考此处了解Activity生命周期。
11
可以使用savedInstanceBundle
通过重写你的活动内的两个方法,类似于下面,以保持数据的保持:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
// Save state to the savedInstanceState
savedInstanceState.putString("MyString", textview.getText());
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// Restore state from savedInstanceState
String myString = savedInstanceState.getString("MyString");
textview.setText(myString);
}
添加您的项目到Bundle
在onSaveInstanceState
,并在onRestoreInstanceState
在读回。这与在创建活动时通过意图传递值的方式类似。
+0
为我工作!谢谢。 –
相关问题
- 1. TextView内容丢失在屏幕锁
- 2. Android - 更改屏幕方向
- 3. Qt屏幕方向更改
- 4. ANDROID屏幕方向更改
- 5. 屏幕方向更改
- 6. 当屏幕方向改变时,整数值会丢失?
- 7. android-屏幕方向改变时听众丢失
- 8. Android进度条在屏幕方向更改后不更新
- 9. 在屏幕方向更改后从对话框中更新ListView
- 10. YouTubePlayerFragment黑色方向更改屏幕
- 11. 屏幕方向更改通知
- 12. 屏幕方向随setRetainInstance更改(true)
- 13. 更改Android主屏幕方向?
- 14. 如何处理屏幕方向更改
- 15. AutoCompleteTextView处理屏幕方向更改
- 16. 黑莓屏幕方向更改
- 17. Android:onRetainNonConfigurationInstance未调用屏幕方向更改
- 18. 更改屏幕方向问题:onCreate
- 19. 屏幕方向更改的意图
- 20. Android NullPointerException在屏幕方向更改
- 21. Android - 更改模拟器屏幕方向
- 22. 一个更改屏幕显示方向
- 23. 运行期间更改屏幕方向
- 24. 节点离开屏幕后丢失fps
- 25. 登录屏幕显示progressdialog并允许屏幕方向更改
- 26. 当点击屏幕时更改TextView值
- 27. 内容比屏幕更宽
- 28. 当视图滚动屏幕时,UITextField内容会丢失
- 29. ListView内容在分片更改后丢失
- 30. Android更改textview的内容
这似乎还不够。你还有什么补充? – 2014-01-30 21:50:01
@dpk它为我工作;没有其他东西可以添加。 – DBedrenko