リストビュー(およびデータベース)からアイテムを削除する際に問題があります。これまでのところ、私はこの例に従っています: http://www.vogella.com/articles/AndroidSQLite/article.htmlしかし、そこの削除は好きではありません (常に最初のものを削除するボタン)。
これが私の活動クラスです:
public class FirstActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
final ShoppingSQL shoppingSQL = new ShoppingSQL(this);
List<ShoppingData> list = shoppingSQL.getAll();
ArrayAdapter<ShoppingData> adapter = new ArrayAdapter<ShoppingData>(
this, android.R.layout.simple_list_item_1, list);
setListAdapter(adapter);
this.getListView().setLongClickable(true);
this.getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
Log.w("DELETED", " DELETED");
shoppingSQL.delete((int)id);
return true;
}
});
}
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Log.w("CLICKED", "CLICKED");
}
}
ご覧のとおり、長いクリックのリスナーと、ID を必要とする削除メソッドが設定されています。問題は ID にあり、現在それを与えているのは注文番号 (0、1、2、3) のようです - db の実際の ID ではありません。それで、私の質問はどうすれば本当のIDを取得できますか?