如何使用onTextChange将editText添加到listView?

时间:2015-11-02 13:31:57

标签: android

我正在尝试创建一个listView,每行有2个editText,它们使用TextWatcher接口来识别我们是否更改了editText上的当前文本 我的问题是我的适配器非常滞后和缓慢。我该如何处理这个问题? 这是我的适配器:

IsServiceable = _context.Site.Any(s => s.Id == x.Id && s.Reviews.Any(r => r.IsValid));

2 个答案:

答案 0 :(得分:0)

holder.fullName.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if (s.length() != count) 
                {

                    if (!accounts.get(position).getFullName().equals(s.toString())) {
                        //accounts.get(position).setFullName(s.toString());
                        ((MainActivity)context).changeListViewItem(position , s.toString);
                    }
                }
            }

            @Override
            public void afterTextChanged(Editable s) {
                if (!accounts.get(position).getFullName().equals(s.toString())) {
                    //accounts.get(position).setFullName(s.toString());
                    ((MainActivity)context).changeListViewItem(position , s.toString);
                }
            }
        });

在主要活动

上添加此功能
public void changeListViewItem(int position , String text)
{
    Log.e("" , ""+position);
    Log.e("" , ""+text);
    refreshAdapter();
}

答案 1 :(得分:0)

1. addTextChangedListener可以添加重复。

您可以尝试在onTextChanged中添加日志。

查看您输入char时记录的次数。

当您使用addTextChangedListener时,请添加tag

2.U应该尝试使用ViewHolder来帮助你。