現在、ListActivity を使用しています。カーソルを使用して SQL からデータを取得し、SQL クエリの結果に従って ListView を作成しました。ListView 内のすべてのオブジェクトについて、そのオブジェクト (onListItemClick) を押すと、カーソルが読み取る SQL の値が変更され、新しいインテントが開きます (別のオブジェクトを押すと、SQL テーブル内の別の値が変更されます)。 . ListView を最新の状態に保つために、使用します
//adapter is the SimpleCursorAdapter I use
protected void onListItemClick(ListView l, View view, int position, long id) {
super.onListItemClick(l, view, position, id);
//change the data in sql
...
//change the data end
adapter.changeCursor(dbAdapter.getResult(id));
adapter.notifyDataSetChanged();
//create intent here
//startActivity(intent)
}
問題は、同じオブジェクトを押し続けると、それが作成したインテントをそのままにしておくと、正常に動作することです。しかし、以前の意図を離れた後に別のオブジェクトを押すと、ListView は空になります。たとえば、オブジェクト a を押してインテント a に入り、インテント a を離れてリスト ビューに戻り (ListView は現在は問題ありません)、オブジェクト b を押してインテント b に入ります。インテント b を離れると、ListView は空になります。誰でもこの問題について何か考えがありますか? ありがとうございました。