所以我有一个recyclerview
,每个项目都有一个Switch按钮。切换按钮的状态取决于sharedpreferance
中的数据,我在onBindViewHolder
方法中检查了这些数据。
正如您所知,每个项目在滚动时都会循环使用,并且每次都会调用onBindviewHolder
,因此,我无法控制Switch.OncheckChangedListener
因为切换状态每秒都在变化(滚动时)
首先使用OnClickListener
似乎是一个好主意,但是当用户滑动以切换切换时它会失败。
答案 0 :(得分:0)
有些可以解决,它可能工作与否,但在getView()
方法调用期间,在适配器的Switch.OncheckChangedListener
方法中给出一个标记为true,如果标志为false则执行逻辑,否则设置标志为false。
e.g
boolean isRecycleViewCall = false;
getView() {
isRecycleViewCall = true;
}
Switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(!isRecycleViewCall) {
//your code
} else {
isRecycleViewCall = false;
}
}
});