2012-04-15 17 views
0

現在ListActivityを使用しています。カーソルを使用してSQLからデータを取得し、SQLクエリ結果に従ってListViewを構築しました。私のListView内のすべてのオブジェクトについて、そのオブジェクト(onListItemClick)を押すと、カーソルが読み取るSQLの値が変更され、新しいインテントが開きます(別のオブジェクトを押すと、SQLテーブルの値が変わります) 。最新の私のListViewを保つために、私はこの問題は、私が同じオブジェクトを押し続けるならば、それは作成の意図を離れ、あるListActivity、カーソル、およびSQLデータ更新に関する問題

//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は空になります。誰もがこの問題について考えているのですか?ありがとうございました。

答えて

2

データの一部が破壊されているようです。私はあなたのリスト作成コードをonResumeに移動すると、あなたが戻ってくるたびにリストが再生成されるので、あなた自身の問題は解決されると思います。それはonCreateで、アクティビティが最初に作成されたときだけです。それが動作 Activity Lifecycle

+0

OMG:

百聞は一見にしかずです!以前は、私は更新機能をonresumeに移動しようとしましたが、今はリスト全体を生成しています。どうもありがとう! – JLTChiu

関連する問題