我想删除列表视图中的一行。我正在使用DataBaseOpenHelper。这些行包含两个字段:id_persona和name。
myListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
int id_person = HOW !!!!!!!!
personasDBAdapter.deletePerson(id_person);
}
});
如何连续获取id_persona字段?我不想要排位。我已经在DataBaseOpenHelper类中实现了deletePerson方法。
id_person name
row 1 listview 234 John
row 2 listview 138 Anna
row 3 listview 64 Phil
我想要&#39; 234&#39;或&#39; 138&#39;,而不是第1行或第2行。
答案 0 :(得分:0)
int id_person = i
它为您提供了行的索引,然后是
.remove(adapter.getItem(i));
答案 1 :(得分:0)
onItemsLongClick的签名如下所示:
onItemLongClick(AdapterView<?> parent, View view, int position, long id)
所以什么&#34; int i&#34;在你的代码中实际上是你的适配器中项目的位置。
访问项目调用adapter.getItem(postion)。
Person person = (Person)adapter.getItem(postion);
int id = person.getIdPersona();