Arrayadapter を使用して、データベースに格納されている要素をリストビューに表示しました。リストビューとデータベースの両方からアイテムを削除したいと思います。それを解決するのを手伝ってください。
1135 次
3 に答える
0
これが私のコードです:
Cursor c = db.rawQuery("SELECT * FROM BOOKMARKS", null);
ID = c.getColumnIndex("ID");
audiotime=c.getColumnIndex("BookmarkTime");
// Check result.
c.moveToFirst();
if (c != null)
{
// Loop through all Results
do
{
/*String str=c.getString(ID);
audiobooks.add(str);*/
str=c.getString(audiotime);
audiobooks.add(str);
}
while(c.moveToNext());
c.close();
db.close();
//TODO
arrayAdapter=new ArrayAdapter<String>(this, R.layout.row3, R.id.itemr1,audiobooks);
lv.setAdapter(arrayAdapter);
cursor.close();
db.close(); //close db resources
}
public void onClick(View v)
{
if(v.getId()==R.id.Delete)
{
db = openOrCreateDatabase("DB", 0, null);
db.delete("BOOKMARKS", null, null);
int j=lv.getCount();
Toast.makeText(GetAudioBookmarks.this, " after delete listview count " +j,Toast.LENGTH_SHORT).show();
}
リストビューにブックマーク文字列のみを追加しているため、それができませんでした。DB からデータを取得してリストビューに追加するコードを貼り付けました。私のコードは、削除をクリックするとDB上のすべてのアイテムが削除されますが、リストビューのカウントは保持されているのと同じ値でトーストされますが、リストビューにデータは表示されません。
于 2012-09-12T04:45:09.143 に答える
0
データベースから行を削除するには、サンプルhttp://codinglookseasy.blogspot.in/2012/08/sqlite-database.htmlを使用してみてください。データベースからの削除を行った後、arrayadapter からアイテムを削除し、adapter.notifyDataSetChanged() を使用してリスト ビューからも削除します。
于 2012-09-10T05:20:13.323 に答える