java – 当recycleview滚动父活动按钮时,禁用[复制]
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 当recycleview滚动父活动按钮时,禁用[复制],小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2475字,纯文字阅读大概需要4分钟。
内容图文
![java – 当recycleview滚动父活动按钮时,禁用[复制]](/upload/InfoBanner/zyjiaocheng/811/4b240f51182740afacb29b0d40a0c057.jpg)
这个问题与以下内容完全相同: > CheckBox in ListView being reset when it leaves the screen 2个
我有一个RecyclerView网格适配器包含复选框和父活动中的显示按钮.如果我们选择复选框父活动显示按钮启用,如果我们取消选中复选框显示按钮将禁用,这是我的要求,它的工作正常,但当我滚动回收查看我的显示按钮以禁用.当我滚动我得到item.isChecked()是false..can任何人帮我实现我的要求,请解释
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
try {
final GridViewHolder viewHolder = (GridViewHolder) holder;
final MyList item = items.get(position);
viewHolder.myCheckBox.setTag(position);
viewHolder.myCheckBox.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton,
boolean b) {
item.setChecked(b);
if (item.isChecked())
Count++;
else
Count--;
if (Count > 0) {
((MyActivity)context).showButton().setEnabled(true);
} else {
((MyActivity)context).showButton().setEnabled(false);
}
}
});
viewHolder.myCheckBox.setChecked(item.isChecked());
} catch (Exception e) {
e.printStackTrace();
}
}
在我的pojo列表类中,我为identy复选框返回值编写了两个函数
boolean isChecked;
public boolean isChecked() {
return isChecked;
}
public void setChecked(boolean isChecked) {
this.isChecked = isChecked;
}
适配器中的ViewHolder内部类
public class GridViewHolder extends RecyclerView.ViewHolder {
private CheckBox myCheckBox;
public GridViewHolder(final View parent) {
super(parent);
myCheckBox = (CheckBox) parent.findViewById(myCheckBox);
((ProductListingActivity)context).showButton().setEnabled(false);
parent.setOnClickListener(GridAdapterMy.this);
}
}
解决方法:
我遇到了和你一样的问题,这就是我修复它的方法.
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
try {
final GridViewHolder viewHolder = (GridViewHolder) holder;
viewHolder.myCheckBox.setTag(position);
//add this two lines
viewHolder.myCheckBox.setOnCheckedChangeListener(null);
viewHolder.myCheckBox.setChecked(items.get(position).isChecked());
viewHolder.myCheckBox.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton,boolean b) {
items.get(position).setChecked(b);
if (items.get(position).isChecked())
Count++;
else
Count--;
if (Count > 0) {
((MyActivity)context).showButton().setEnabled(true);
} else {
((MyActivity)context).showButton().setEnabled(false);
}}
});
} catch (Exception e) {
e.printStackTrace();
}
}
内容总结
以上是互联网集市为您收集整理的java – 当recycleview滚动父活动按钮时,禁用[复制]全部内容,希望文章能够帮你解决java – 当recycleview滚动父活动按钮时,禁用[复制]所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。