2011-06-28 8 views
1

SQLite DBからローを削除した後、リストビューをリフレッシュしようとしています。 これはその一部です:リストビューをsqlite DBでリフレッシュする方法

cursor = mysqlAdapter.fetchAll(); // a method from sqlite adater class 
ArrayList<MyInfo> vidRows = new ArrayList<MyInfo>(); 
if (cursor.moveToFirst()) { 
do { ...... } 
while (cursor.moveToNext()); } 
mList.setAdapter(new SomeAdapter(this, vidRows)); 
mList.setOnItemClickListener(this); 
registerForContextMenu(mList); } 

はその後、私のgetViewメソッドで私が行います

答えて

1

あなたは、カーソルを使用していますか?もしそうなら、あなたはただ電話することができます:

cursor.requery(); 
+0

これはいくつかの[警告](http://developer.android.com/reference/android/database/Cursor.html#requery())に付属していますが、動作します。 – dmon

+0

requery()は推奨されていません。 – Suchi

+0

フェアナフ。私は過去にそれを削除のためだけに使用しましたが、並べ替えなどのために新しいカーソルを要求します。 –

0

あなたのリストビューを作成するためにリストを使用していますか?私はこのようにそれを手動でやって好むだろう -

myList.remove(delPos); 
getListView().invalidateViews(); 
+0

いいえ私はリストを使用していません...私はDBのカーソルとフォルダのいくつかの画像を使用しています。誰でも.....? – Codes12

+0

コメントの上にあなたのコードを見ました。 vidRowsを使用してリストを作成しています。このコードはあなたのために働くはずです。 – Suchi

+0

それを試してみてください。 didnt仕事。 – Codes12

0

私は、これはちょっと古いです知っているが、私は他の誰が同じ問題を持っており、それは助けることができる場合には返信ます。

あなたはカーソルアダプタを使用して、あなたがフォローのいずれかを行うことができます行を削除するたびに、その後swapCursor(onCursorLoader使用しているときにも動作します)を使用して、そこにカーソルを渡すことができ

  1. はあなたから行を削除しますその後、DBアダプタの外側とadapter.notifyDataSetChanged(呼び出し)

または

  1. は、アダプタ内のDBを埋め込み、deleteメソッドを作成しますしたがって、あなたがadapter.delete()を呼び出すと、リスト(それをまだ使用している場合)とdbの両方を更新します。
関連する問題