0

Arrayadapter を使用して、データベースに格納されている要素をリストビューに表示しました。リストビューとデータベースの両方からアイテムを削除したいと思います。それを解決するのを手伝ってください。

4

3 に答える 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 に答える