私は検索と運で検索、これは私のコードonItemLongClick機能付SQLiteのID列とonItemLongClick
// Product List
public void setProductList() {
productDB = new DatabaseHelper(this);
listView = (ListView) findViewById(R.id.list);
listAdapter = listView.getAdapter();
Cursor prodView = productDB.getAllData();
prodView.moveToFirst();
ArrayAdapter<String> listAdaptor = new ArrayAdapter<String>(this, R.layout.medicinelistmenu, R.id.productlistsTextView1);
while (prodView.moveToNext()) {
listAdaptor.add(prodView.getString(1));
}
listView.setAdapter(listAdaptor);
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int pos, long id) {
productDB.deleteProduct(id);
Toast.makeText(medicineList.this, "Item Deleted", Toast.LENGTH_LONG).show();
finish();
startActivity(getIntent());
return true;
}
});
}
で、他の記事は私に長い値を言っているされていますAdapterView内の配列はSQLLite ID列になりますが、配列内の位置と同じ値になります。
これは私のDatabaseHelperクラスの削除機能は
public void deleteProduct(long ID)
{
SQLiteDatabase productsdb = this.getWritableDatabase();
productsdb.execSQL("DELETE FROM "+ PRODTABLE_NAME +" WHERE ID = "+ ID);
}
は誰でもデータベースIDの値を取得する方法上の任意の光を当てることができているしてください。
'ArrayAdapter'を使用せず、代わりに' CursorAdapter'を使用してください。おそらく 'SimpleCursorAdapter' – pskink
ありがとう、私はそれを外出します。 –
'SimpleCursorAdapter'を使用する場合、' onItemLongClick(AdapterView > arg0、ビューarg1、int pos、long id)の最後のパラメータはデータベースIDです。 – pskink