【发布时间】:2012-02-05 11:52:39
【问题描述】:
我有一个包含 EditText 的 ListView。我想捕获这个文本框的 textchanged 事件并更新其他列。
在我的 customAdapter 中我做了这个
public View getView(int position, View inView, ViewGroup parent) {
View v = inView;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.cartlistview, null);
}
EditText edQty = (EditText) v.findViewById(R.id.cartProductQuantity);
edQty.addTextChangedListener(new QtyChangedWatcher(position, v));
}
即使用户没有更改任何内容,事件也会自行触发。此外,当用户仅更改第一行的输入时,会触发该事件,但会触发列表视图中的所有文本框。
我做错了吗?
谢谢
【问题讨论】:
-
当您的
Activity创建时,是否有任何EditText对象具有焦点? -
我不确定我所做的是否正确。在我的偶数代码中,我检查了之前和之后的值,如果它们不同,我继续我的代码。我在文本框中使用 setTag 函数存储了先前的值。