sqlliteデータベースからデータを取得してリストビューに設定する方法によって、このコードがあります。
Cursor cursor = dbAdapter.getAllIncomingData();
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
Log.d("ADD/EDIT", cursor.getCount() + "");
int size = cursor.getCount();
incomingDataList = new ArrayList<IncomingData>(size);
incomingStringList = new ArrayList<String>(size);
for (int i = 0; i < size; i++) {
String serial = cursor.getString(cursor
.getColumnIndex("serial"));
String mapurl = cursor.getString(cursor
.getColumnIndex("mapurl"));
String datetime = cursor.getString(cursor
.getColumnIndex("datetime"));
// Device device=new Device(id, label, serial,
// contact);
Device dev = dbAdapter.getDeviceBySerial(serial);
IncomingData inData = new IncomingData(serial, mapurl,
datetime);
inData.setLabel(dev.getLabel());
inData.setContact(dev.getContact());
incomingDataList.add(inData);
cursor.moveToNext();
}
inAdapter = new IncomingDataArrayAdapter(
MatchpointHistoryActivity.this, R.layout.history_item,
incomingDataList);
historyList.setAdapter(inAdapter);
}
データベースのデータはSMSを受信することで更新されており、レシーバークラスに挿入クエリを記述しました。新しいデータが追加または削除された場合、カーソルに通知が届き、アダプターがリストビューにリセットされます。変更を表示するにはアクティビティを再起動する必要がありますが、変更をすぐに通知する必要があります。私はいつもタイマーを使ってこのようなことをしたくありません、他の方法はありますか?