0
private ArrayList<String> conversation = new ArrayList<String>();
public ArrayAdapter<String> adapter;
private String phoneNumber;     
ListView listView;



protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.converse_view);

    this.adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, android.R.id.text1,
            conversation);

    ListView listView = (ListView) findViewById(R.id.conversation);
    listView.setAdapter(adapter);

}



protected void onResume()
{
   super.onResume();
   setContentView(R.layout.converse_view);
   this.adapter.notifyDataSetChanged();


}


public void changeNumber(String phoneNumber2) {
    this.phoneNumber = phoneNumber2;

}

public void addText(String message) {
    conversation.add(message);

}

@Override
public String toString() {
    return phoneNumber;
}

public boolean equals(converseView other) {
    return this.phoneNumber.equals(other.phoneNumber);
}

私はテキストメッセージアプリを作成しています。これは会話ビュー画面のクラスです。送信ボタンをクリックすると、addText()が呼び出されます。リストビューを更新して、送信先のテキストメッセージを確認するにはどうすればよいですか。

4

1 に答える 1

1

メッセージをアダプターに追加し、リストが変更されたことをアダプターに通知する必要があります。

if (this.adapter!=null)
{
  this.adapter.add(message);
  this.adapter.notifyDataSetChanged();
}

基本的に、アダプターが会話の状態を最後に認識するのは次の時点です。

this.adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_1, android.R.id.text1,
        conversation);

これにより、ArrayList から ArrayAdapter にすべてが追加されますが、それらがリンクされることはありません。

于 2012-12-08T01:43:09.570 に答える