我正在做一个信使应用程序,对于消息历史记录,我使用ArrayAdapter创建了一个ListView。我有一个服务来做消息传递活动,所以即使用户正在与其他东西进行交互,它也应该收到消息。然而,当我按下主页按钮后返回应用程序时,我得到一个空列表视图,这对我的应用程序来说是一个奇怪的事情。我试图在onsavingInstance中保存适配器,但它不能正常工作,因为它不是可串行的。请帮助我,我怎么能保留我的列表视图。下面是我的代码的一些补丁。
// Array adapter for the conversation thread
private ArrayAdapter<String> mConversationArrayAdapter;
private ListView mConversationView;
// Initialize the array adapter for the conversation thread
mConversationArrayAdapter = new ArrayAdapter<String>(this, R.layout.message);
mConversationView = (ListView) findViewById(R.id.in);
mConversationView.setAdapter(mConversationArrayAdapter);
/**
* save the listView
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("mArrayAdapter", (Serializable) mConversationArrayAdapter);
Toast.makeText(this, "History saved.", Toast.LENGTH_SHORT).show();
}
*/
public void onStart(Bundle savedInstanceState) {
super.onStart();
if(D) Log.e(TAG, "++ ON START ++");
// if (savedInstanceState != null) {
// mConversationArrayAdapter = (ArrayAdapter<String>) savedInstanceState.getSerializable("mArrayAdapter");
// }
setupChat();
}
答案 0 :(得分:-1)
onSaveInstanceState
不是保存持久数据的地方......事实上,它甚至可能都没有被调用。
我建议您在ArrayAdapter
填充onResume
并将其保存在onPause
。