1

我有一个 ListView,它在每个 ListView 行中显示一个按钮和一个 EditText。

我在我的 ArrayAdapter 中使用 ViewHolder 模式,因此所有按钮共享一个 OnClickListener。拿起按钮点击很容易,因为我的 OnClickListener 中的 onClick(View view) 为我提供了视图(我使用 getTag() 来获取我的模型对象)。

我无法弄清楚如何使用单个 TextWatcher 来获取更改后的文本,因为 TextWatcher onTextChanged() 回调中没有 view 参数。任何帮助表示赞赏!

4

2 回答 2

1

诀窍是创建一个通用的 TextWatcher 类。然后,您创建的每个实例都应该被传递一个 View 的引用,它将被放置到其中。

示例:https ://stackoverflow.com/a/6172024/560600

于 2013-09-04T08:48:47.393 回答
0

为了获取 EditText 的值,在按钮的侦听器中我这样工作:

viewHolder.button.setTag(viewHolder.YourEditText);
viewHolder.button.setOnClickListener(new OnClickListener()){
    @Override
    public void onClick(View v) {
        int p = position;
        EditText edit = (EditText) v.getTag();
        String val = edit.getEditableText().toString();
       //do what you want with the value...
    }
}

position在哪里public View getView(final int position, View convertView, ViewGroup parent){...

如果您需要,我可以发布整个 AdapterClass。

于 2013-09-04T07:21:01.507 回答