我有一个recyclerview,但是此元素不允许我更新这些元素,并且当我更改回收器中的某些元素时,最后的另一个元素也会更改。
当我在移动recyclerview时更新第一个项目时,下面另一个项目被更改了,我不知道为什么会有这种行为。我不知道还有什么可能,或者我如何使用notifydatasetchanged来解决问题,但它不起作用
public class ConfigSituadoAdapter extends RecyclerView.Adapter<ConfigSituadoAdapter.ViewHolderConfigSituadoAdapter> {
ArrayList<ConfigSituadoVO> listaConfiguraciones;
private View.OnClickListener listener;
private Context mContext;
public class ViewHolderConfigSituadoAdapter extends RecyclerView.ViewHolder {
TextView EtiNomConf;
Switch switchtoogle;
ImageView imgRechaza;
public ViewHolderConfigSituadoAdapter(@NonNull View itemView) {
super(itemView);
EtiNomConf=(TextView) itemView.findViewById(R.id.txtNomConf);
imgRechaza = (ImageView)itemView.findViewById(R.id.ImgRechazaCarro);
switchtoogle= (Switch) itemView.findViewById(R.id.IdSwitch);
}
}
public ConfigSituadoAdapter(Context context,ArrayList<ConfigSituadoVO> listaConfiguraciones) {
this.listaConfiguraciones = listaConfiguraciones;
this.mContext = context;
}
@NonNull
@Override
public ConfigSituadoAdapter.ViewHolderConfigSituadoAdapter onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_config_situados,viewGroup,false);
return new ConfigSituadoAdapter.ViewHolderConfigSituadoAdapter(view);
}
@Override
public void onBindViewHolder(@NonNull final ConfigSituadoAdapter.ViewHolderConfigSituadoAdapter viewHolderConfigSituadoAdapter, final int position) {
final BDFFCCMovil objBD = new BDFFCCMovil(listaConfiguraciones.get(position).getContext());
viewHolderConfigSituadoAdapter.EtiNomConf.setText(listaConfiguraciones.get(position).getNomConfig());
final int valor = listaConfiguraciones.get(position).getSwitchs();
if(listaConfiguraciones.get(position).getRechaza()!=1) {
viewHolderConfigSituadoAdapter.imgRechaza.setVisibility(View.GONE);
}
if(valor==0){
viewHolderConfigSituadoAdapter.switchtoogle.setText("OFF");
viewHolderConfigSituadoAdapter.switchtoogle.setTextColor(Color.parseColor("#ff0000"));
viewHolderConfigSituadoAdapter.switchtoogle.setChecked(false);
viewHolderConfigSituadoAdapter.switchtoogle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked== true) {
viewHolderConfigSituadoAdapter.switchtoogle.setText("ON");
viewHolderConfigSituadoAdapter.switchtoogle.setTextColor(Color.parseColor("#0000ff"));
objBD.updateTraInsCarroDet(listaConfiguraciones.get(position).getIdInsCarro(),listaConfiguraciones.get(position).getIdConfig(),listaConfiguraciones.get(position).getIdConfigDet(),"1", listaConfiguraciones.get(position).getRechaza(),1);
viewHolderConfigSituadoAdapter.switchtoogle.setChecked(true);
listaConfiguraciones.get(position).setSwitchs(1);
objBD.close();
} else {
Log.e("false1-",".."+isChecked);
viewHolderConfigSituadoAdapter.switchtoogle.setText("OFF");
viewHolderConfigSituadoAdapter.switchtoogle.setTextColor(Color.parseColor("#ff0000"));
objBD.updateTraInsCarroDet(listaConfiguraciones.get(position).getIdInsCarro(),listaConfiguraciones.get(position).getIdConfig(),listaConfiguraciones.get(position).getIdConfigDet(),"0",listaConfiguraciones.get(position).getRechaza(),0);
viewHolderConfigSituadoAdapter.switchtoogle.setChecked(false);
listaConfiguraciones.get(position).setSwitchs(0);
Log.e("false1---", String.valueOf(listaConfiguraciones.get(position).getSwitchs()));
objBD.close();
}
}
});
}else{
viewHolderConfigSituadoAdapter.switchtoogle.setText("ON");
viewHolderConfigSituadoAdapter.switchtoogle.setChecked(true);
viewHolderConfigSituadoAdapter.switchtoogle.setTextColor(Color.parseColor("#0000ff"));
viewHolderConfigSituadoAdapter.switchtoogle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked == true) {
viewHolderConfigSituadoAdapter.switchtoogle.setText("ON");
viewHolderConfigSituadoAdapter.switchtoogle.setTextColor(Color.parseColor("#0000ff"));
objBD.updateTraInsCarroDet(listaConfiguraciones.get(position).getIdInsCarro(),listaConfiguraciones.get(position).getIdConfig(),listaConfiguraciones.get(position).getIdConfigDet(),"1",listaConfiguraciones.get(position).getRechaza(),1);
viewHolderConfigSituadoAdapter.switchtoogle.setChecked(true);
listaConfiguraciones.get(position).setSwitchs(1);
objBD.close();
} else {
viewHolderConfigSituadoAdapter.switchtoogle.setText("OFF");
viewHolderConfigSituadoAdapter.switchtoogle.setTextColor(Color.parseColor("#ff0000"));
objBD.updateTraInsCarroDet(listaConfiguraciones.get(position).getIdInsCarro(),listaConfiguraciones.get(position).getIdConfig(),listaConfiguraciones.get(position).getIdConfigDet(),"0",listaConfiguraciones.get(position).getRechaza(),0);
viewHolderConfigSituadoAdapter.switchtoogle.setChecked(false);
listaConfiguraciones.get(position).setSwitchs(0);
objBD.close();
}
}
});
}
}
@Override
public int getItemCount() {
return listaConfiguraciones.size();
}
}