基本的なテキスト メッセージング 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); }
*/
}