顧客リストを作成しました。クリックすると、編集ビューが開き、顧客を編集できます。ここで、パラメーターは、データベースに格納されている行の _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);
}
});