0

我正在做一个信使应用程序,对于消息历史记录,我使用 ArrayAdapter 创建了一个 ListView。我有一个执行消息传递活动的服务,所以即使用户正在与其他东西交互,它也应该收到一条消息。但是,当我按下主页按钮后返回应用程序时,我得到一个空列表视图,这对我的应用程序来说是一件奇怪的事情。H 尝试将适配器保存在 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();
}
4

1 回答 1

-1

onSaveInstanceState不是保存持久数据的地方......事实上,它甚至可能不会被调用。

我建议您填充并保存ArrayAdapter在.onResumeonPause

于 2012-06-19T14:54:26.693 回答