我有什么由两个EditText上与自定义适配器的旅客名单 - edtFirstName和edtLastName。 我想,当用户输入文本时,将更改保存到列表中,当单击下一步按钮,发送名单到另一个活动。
我的代码:
public class TravellersAdapter extends BaseAdapter {
private List<Traveler> itemsList;
private LayoutInflater inflater;
private Activity context;
public TravellersAdapter(Activity context, List<Traveler> itemsList) {
super();
this.itemsList = itemsList;
this.context = context;
inflater = LayoutInflater.from(context);
}
public int getCount() { return itemsList.size(); }
public Object getItem(int i) { return itemsList.get(i); }
public View getView(final int position, View view, ViewGroup viewGroup) {
if (view == null) {
view = inflater.inflate(R.layout.traveller_item, null);
}
Traveler currentItem = (Traveler) getItem(position);
EditText firstNameView = (EditText) view.findViewById(R.id.edtFirstName);
firstNameView.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable editable) {
currentItem.setFirstName(editable.toString());
}
});
return view;
}
}
对于为例名单itemsList由5个项目。 当我编辑2-4元都可以,但是当我编辑列表分配给所有元素第一个或最后一个元素编辑值。 在dubugger我看到法afterTextChanged
用不同的值调用5次position
。 如何解决呢?