我已经生成了一个客户列表。单击此按钮应打开编辑视图以编辑客户。这里的参数应该根据存储在数据库中传递行的_id。但每次传递它在列表中的位置。所以编辑视图打开了错误的数据。请帮忙。
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> l, View v, int position, long id) {
Uri customerEditUri = Uri.parse(CustomerBean.CONTENT_URI + "/" + id);
customerEdit(customerEditUri);
}
});
答:谢谢大家。您的评论帮助我解决了这个问题。我在 CustomerObject 类中创建了以下函数:
@Override
public String toString() {
return this.name;
}
之后在活动中创建了一个 CustomerObject 数组,如下所示:
List<CustomerObject> customers = new ArrayList<CustomerObject>();
通过以下方式创建 ArrayAdapter:
adapter = new ArrayAdapter<CustomerObject>(this, R.layout.list, R.id.customer_name, customers);
最后像这样调用 setOnItemClickListener() :
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> l, View v, int position, long id) {
CustomerObject custObj = adapter.getItem(position);
Uri customerEditUri = Uri.parse(CustomerBean.CONTENT_URI + "/" + custObj.pkid);
customerEdit(customerEditUri);
}
});