已经搜索了由listview填充的保存项目,但结果我发现所有使用的片段,无论如何我尝试没有成功。 我试图做一个简单的事情,保存从网络服务器到我的列表视图的文本,所以当调用方向时,列表视图中填充的文本不会消失。
我在列表视图中添加了文字,例如'listview.add(text);'
尝试在onsave中保存文本并在oncreate中再次填充但不起作用。 有什么指针吗?谢谢
答案 0 :(得分:0)
方向更改会导致配置更改。
从Activities“处理配置更改”部分
当发生这样的更改时,Android会重新创建正在运行的活动(系统调用onDestroy(),然后立即调用onCreate())。
所以,保存在onDestroy()。
将onSaveInstanceState()中的代码(保存数据)移动到onDestroy()
此示例使用onDestroy()但onPause()(或onStop(),如果minSdkVersion足够高)可能是一个不错的选择。 (因为它是保存某些东西的正常场所。)
// Your save code (may be onother name)
private void save(String text)
{
....
}
// onSaveInstanceState() is NOT part of Activity life cycle.
onSaveInstanceState()
{
...
// save(text); // Move this from here
}
onDestroy()
{
save(text); // to here.
}
http://developer.android.com/guide/components/activities.html#Lifecycle “保存活动状态”部分
注意:无法保证在销毁活动之前调用onSaveInstanceState(),因为在某些情况下不需要保存状态
答案 1 :(得分:0)
/tab2
如果它不起作用,请告诉我。并共享一些代码片段以进一步阐明。