网上太多的关于listview数据错位的情况 单独的数据展示是一个方面 但是item内部控件的监听事件并且返回后数据刷新数据错位怎么办
下面直接贴代码,但是特别注意:注意顺序
AddPersonMessageBean bean = arrList1.get(position);
holder.cotact_name.setTag(bean);
holder.relative.setTag(bean);
holder.phoneNumber.setTag(bean);
holder.phoneNumber.setText(bean.getPhone_num());
holder.cotact_name.setText(bean.getName());
holder.relative.setText(bean.getRelative());
//大部分情况下,Adapter里面有if必须有else
if (!TextUtils.isEmpty(bean.getName())) {
holder.cotact_name.setText(bean.getName());
} else {
holder.cotact_name.setText("");
}
//大部分情况下,Adapter里面有if必须有else
if (!TextUtils.isEmpty(bean.getPhone_num())) {
holder.phoneNumber.setText(bean.getPhone_num());
} else {
holder.phoneNumber.setText("");
}
//大部分情况下,Adapter里面有if必须有else
if (!TextUtils.isEmpty(bean.getRelative())) {
holder.relative.setText(bean.getRelative());
} else {
holder.relative.setText("");
}
holder.cotact_name.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) {
}
@Override
public void afterTextChanged(Editable s) {
AddPersonMessageBean bean = (AddPersonMessageBean) holder.cotact_name.getTag();
bean.setName(s.toString());
}
});
arrayList.get(tem).setPhone_num(usernumber);
adapater.notifyDataSetChanged();