1、由于recycleview复用机制,checkbox选一个,下面自动选中,edittext自动输入问题:
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
//禁止复用,要不数据重复
viewHolder.setIsRecyclable(false);
viewHolder.ckPeoplewater.setText(chargeList.get(position).getItem_Name());
viewHolder.tvPeopleprice.setText(chargeList.get(position).getItem_Price()+"");
viewHolder.tvPeopleprice1.setText(chargeList.get(position).getSewageFee()+"");
viewHolder.tvPeopleprice2.setText(chargeList.get(position).getResourceFee()+"");
viewHolder.etPeoplewater.setText(chargeList.get(position).getItemHighLimit()+"");
viewHolder.etPeoplewater1.setText(chargeList.get(position).getItemLowLimit()+"");
chargeList.get(position).setItemHighLimit(Integer.parseInt(viewHolder.etPeoplewater.getText().toString()));
viewHolder.ckPeoplewater.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked == true) {
map.put(position, true);
TextWatcher watcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2){
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (!TextUtils.isEmpty(editable.toString())){
chargeList.get(position).setItemHighLimit(Integer.parseInt(editable.toString()));
}
if(editable != null){
mOnItemClickListener.onEtRateClick(position,editable.toString());
}
}
};
viewHolder.etPeoplewater.addTextChangedListener(watcher);
TextWatcher watcher1 = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2){
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (!TextUtils.isEmpty(editable.toString())){
chargeList.get(position).setItemLowLimit(Integer.parseInt(editable.toString()));
}
if(editable != null){
mOnItemClickListener.onEtTotalClick(position,editable.toString());
}
}
};
viewHolder.etPeoplewater1.addTextChangedListener(watcher1);
} else {
map.remove(position);
}
if (mOnItemClickListener!=null){
mOnItemClickListener.onItemClick(position,chargeList,isChecked);
}
}
});
if (map != null && map.containsKey(position)) {
viewHolder.ckPeoplewater.setChecked(true);
} else {
viewHolder.ckPeoplewater.setChecked(false);
}
}
我这个数据少,可以禁用,数据多的回卡顿,通过设置settag来实现,百度有好多;
对edittext监听,获取数据:
public class chargeAdapter extends RecyclerView.Adapter<chargeAdapter.ViewHolder> {
private Context mContext;
List<watercharge .ItemsInfoBean> chargeList;
private OnItemClickListener mOnItemClickListener;
private Map<Integer, Boolean> map = new HashMap<>();
public chargeAdapter(Context context,List<watercharge .ItemsInfoBean> chargeList) {
this.mContext = context;
this.chargeList = chargeList;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(mContext).inflate(R.layout.item_charge, viewGroup, false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
//禁止复用,要不数据重复
viewHolder.setIsRecyclable(false);
viewHolder.ckPeoplewater.setText(chargeList.get(position).getItem_Name());
viewHolder.tvPeopleprice.setText(chargeList.get(position).getItem_Price()+"");
viewHolder.tvPeopleprice1.setText(chargeList.get(position).getSewageFee()+"");
viewHolder.tvPeopleprice2.setText(chargeList.get(position).getResourceFee()+"");
viewHolder.etPeoplewater.setText(chargeList.get(position).getItemHighLimit()+"");
viewHolder.etPeoplewater1.setText(chargeList.get(position).getItemLowLimit()+"");
chargeList.get(position).setItemHighLimit(Integer.parseInt(viewHolder.etPeoplewater.getText().toString()));
viewHolder.ckPeoplewater.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked == true) {
map.put(position, true);
TextWatcher watcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2){
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (!TextUtils.isEmpty(editable.toString())){
chargeList.get(position).setItemHighLimit(Integer.parseInt(editable.toString()));
}
if(editable != null){
mOnItemClickListener.onEtRateClick(position,editable.toString());
}
}
};
viewHolder.etPeoplewater.addTextChangedListener(watcher);
TextWatcher watcher1 = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2){
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {