基本上,我有一个带有切换和删除按钮的列表和行,我已经设置了一个setOnClickListener。每当我用我正在执行的remove调用从列表中删除一行时,它都会随机触发,我已经实现了一个接口来实现MainClass的适配器事件功能。
我放了吐司看看发生了什么。我看到当我单击“删除一行”时,setOnClickListener会不断触发约3次-4次,我不知道为什么会这样。...
我已经实现了一个接口来控制我的适配器类下事件的适配器。
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.switchRow.setChecked(listdata.get(position).getStatus());
holder.imgbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
eventHandler.DeleteClick(holder.getAdapterPosition());
}
});
holder.switchRow.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
eventHandler.SwitchChange(holder.getAdapterPosition(), isChecked);
}
});
}
interface EventHandler{
void DeleteClick(int index);
void SwitchChange(int index, boolean value);
}
在我的主要班级下,我有:
@Override
public void SwitchChange(int index, boolean status) {
Toast.makeText(this, Integer.toString(myListData.get(index).getStatus() ? 1:0)+ " " +
Integer.toString(index)
,
Toast.LENGTH_SHORT).show();
}
@Override
public void DeleteClick(int index) {
Toast.makeText(this, "DELETING CALLED" ,
Toast.LENGTH_SHORT).show();
myListData.remove(index);
adapter.notifyItemChanged(index);
adapter.notifyDataSetChanged();
}
我希望从列表中删除一行时不会触发SwitchChange。