在Android中的Listview中捕获TextChanged事件

时间:2012-02-05 11:52:40

标签: android listview

我有一个包含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));
}

即使用户没有更改任何内容,该事件也会自行解雇。此外,当用户仅为第一行更改输入时,事件将被触发,但是对于列表视图中的所有文本框。

我做错了吗?

由于

1 个答案:

答案 0 :(得分:0)

试试这个:

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));
    }
}

(在if条件中移动你的addTextChangedListener)