0

基本的なテキスト メッセージング UI を設計しています。converseView というクラスがあります。

public class converseView extends Activity {

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);
    adapter.setNotifyOnChange(true);        
    listView = (ListView) findViewById(R.id.conversation);
    listView.setAdapter(adapter);

}

protected void onStart(Bundle savedInstanceState)
{
    super.onStart();
    this.adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, android.R.id.text1,
            conversation);

    this.adapter.notifyDataSetChanged();
    listView.setAdapter(adapter);

}

protected void onResume()
{
   super.onResume();
   this.adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, android.R.id.text1,
            conversation);
   this.adapter.notifyDataSetChanged();
   listView.setAdapter(adapter);

}


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

}

public void addText(String message) {

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


}

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

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

}

新しい電話番号にメッセージを送信するたびに、これのインスタンスが作成され、ArrayList/ArrayAdapter はその番号に送信されたすべてのメッセージを追跡する必要があります。しかし、このビューに入ろうとすると、ArrayAdapter が更新されておらず、何も表示されていないようです。これを修正するにはどうすればよいですか。

アダプターへの保存を処理する方法は次のとおりです

if (phoneNumber.length() > 0 && message.length() > 0) {
        sendSMS(phoneNumber, message);
        converseView numberObject = new converseView();
        numberObject.changeNumber(phoneNumber);
        MainActivity.addThread(numberObject);
        numberObject.addText(message);

        /*
         * if(MainActivity.contains(numberObject)) { int index =
         * MainActivity.indexOf(numberObject); converseView numberObject2 =
         * (converseView) MainActivity.getList().get(index);
         * numberObject2.addText(message); }
         */

    }
4

0 に答える 0