我在从列表视图(和数据库)中删除项目时遇到问题。到目前为止,我一直遵循这个例子: 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。所以,我的问题是我如何获得真实身份?