助けを求めてもいいですか...データベースにデータを追加することはできます..しかし、データを削除するのに問題があります..ListViewからIDに基づいて削除できないため... IDを取得する方法??. .これは私のコードです..
このクラス名は ViewActivity.java で、データベースのコンテンツを表示します... ListView に 1 つの列のみを表示します
String query = "select * from " + helper.TABLE_PEKERJA;
Cursor c = database.rawQuery(query, null);
if(c!=null)
{
c.moveToFirst();
int getNamaIndex = c.getColumnIndex(helper.COL_NAMA);
if(c.isFirst())
{
do{
String nama = c.getString(getNamaIndex);
result.add(nama);
}while(c.moveToNext());
}
}
this.setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1,result));
getListView().setTextFilterEnabled(true);
DBHelper で、ここにあるデータベース テーブルから行を削除するメソッドを作成します。
public void deleteData(SQLiteDatabase db, String id)
{
db.delete(TABLE_PEKERJA, COL_ID + " = " +id, null);
}
次に、クラスViewActivity.javaで、メソッドonListItemClickを実装します
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
DBHelper helper = new DBHelper(this);
database = helper.getWritableDatabase();
Object o = this.getListAdapter().getItem(position);
String keyword = o.toString();
helper.deleteData(database, keyword);
Toast.makeText(this, "Data " + keyword + " removed" , Toast.LENGTH_SHORT).show();
}
このエラーも発生しました..このエラーは私だけが見ることができます...このエラーの一部
Object o = this.getListAdapter().getItem(position);
02-09 02:34:23.729: E/Database(28923): at com.example.untukmuna.ViewContentActivity.onListItemClick(ViewContentActivity.java:69)
だから、私の質問は
1)IDに基づいてListViewでアイテムを押すと、データベーステーブルの行を削除するにはどうすればよいですか 2)データベースを作成するときに、 db.open() があります...しかし、どこでデータベースを閉じる必要がありますか db.close() を入れて購入します。 ..??
ありがとう~~私の質問を理解してくれることを願っています.. ^_^