0

私はメッセンジャーアプリをやっていて、メッセージ履歴のためにArrayAdapterでListViewを作成しました。私はメッセージング活動を行うサービスを持っているので、ユーザーが他の何かとやり取りしているときでもメッセージを受け取るはずです。ただし、ホームボタンを押した後にアプリに戻ると、アプリにとって奇妙なことである空のリストビューが表示されます。H はアダプタを on SavingInstance に保存しようとしましたが、シリアル化できないため機能しません。リストビューを保持するにはどうすればよいか教えてください。以下は私のコードのいくつかのパッチです。

// 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に入力して にonResume保存することをお勧めしますonPause

于 2012-06-19T14:54:26.693 に答える