1.初始图
在滑动后就变成了这样
解决方法如下
if (znTime.getTag() != null) {
znTime.removeTextChangedListener((TextWatcher) znTime.getTag());
}
TextWatcher textWatcher = 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) {
if(s.length() > 0) {
getData().get(helper.getAdapterPosition()).setDt_daytime(s.toString());
}
}
};
znTime.addTextChangedListener(textWatcher);
znTime.setTag(textWatcher);
znTime.setText( item.getDt_daytime());
上边为一个列表为edittext多个其实也一样(有几个就按照这个方法写几个就可以把znTime换成其他的输入框名即可)只不过如果每次都是重复写的话就增加代码了(能少写为什么要多写呢)
//这个调用的方法放入到适配器中
returnData(helper,znTime,item,0);
/**
* 解决输入框重复问题
* @param helper BaseViewHolder
* @param editText 输入框
* @param item 实体类
* @param i 这个为自己定义的为了后边的switch语句
*/
private void returnData(BaseViewHolder helper,EditText editText,TrainingDayAchievesAssessCculum item,int i){
if (editText.getTag() != null) {
editText.removeTextChangedListener((TextWatcher) editText.getTag());
}
TextWatcher textWatcher2 = 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) {
if(s.length() > 0) {
switch (i){
case 0:
getData().get(helper.getAdapterPosition()).setDt_daytime(s.toString().trim());
break;
case 1:
getData().get(helper.getAdapterPosition()).setDt_night(s.toString().trim());
break;
case 2:
getData().get(helper.getAdapterPosition()).setCdt_daytime(s.toString().trim());
break;
case 3:
getData().get(helper.getAdapterPosition()).setCdt_night(s.toString().trim());
break;
case 4:
// item.set(s.toString().trim());
// getData().get(helper.getAdapterPosition()).setCdt_daytime(s.toString().trim());
break;
case 5:
getData().get(helper.getAdapterPosition()).setRemarks(s.toString().trim());
break;
default:
break;
}
}
}
};
editText.addTextChangedListener(textWatcher2);
editText.setTag(textWatcher2);
switch (i){
case 0:
editText.setText(item.getDt_daytime());
break;
case 1:
editText.setText(item.getDt_night());
break;
case 2:
editText.setText(item.getCdt_daytime());
break;
case 3:
editText.setText(item.getCdt_night());
break;
case 4:
// editText.setText(item.getDt_daytime());
break;
case 5:
editText.setText(item.getRemarks());
break;
default:
break;
}
}
经过上边的代码修改后就可以了如下图
第一个图为滑动后但是没有重新滑动到原来的位置,第二个为重新回到原来位置图;
电脑上没有截动图的软件所以只能截个静图了,最终效果自己可以去试下;