我正在尝试创建一个listView,每行有2个editText,它们使用TextWatcher接口来识别我们是否更改了editText上的当前文本 我的问题是我的适配器非常滞后和缓慢。我该如何处理这个问题? 这是我的适配器:
IsServiceable = _context.Site.Any(s => s.Id == x.Id && s.Reviews.Any(r => r.IsValid));
答案 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
来帮助你。