gpt4 book ai didi

java - RecyclerView 中电视应用程序的复选框

转载 作者:行者123 更新时间:2023-11-30 01:09:27 25 4
gpt4 key购买 nike

我遇到了一个问题。我用 setChecked、True 和 False 创建了一个复选框,但我不知道为什么这根本不起作用。首先我需要调用 holder.textView。因为在我的应用程序上,复选框是可见的,但无法聚焦。当我编写这样的代码(工作)时,但是当我尝试为句柄制作一些 ifs() 已检查/未检查时,一切都不起作用:

 case SETTINGS_CHANNELS:
holder.checkBox.setVisibility(View.VISIBLE);
holder.title.setText(((List<LiveTvChannel>) list).get(position).getTitle());
holder.title.requestFocus();

holder.title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.checkBox.setChecked(true);
}
});

break;

所以我尝试这样的事情。首先,我为 TexxtView 调用 onClick 方法,接下来我调用复选框。但这没有用。任何人都可以帮忙吗?

switch (posit) {
case SETTINGS_CHANNELS:
holder.checkBox.setVisibility(View.VISIBLE);
holder.title.setText(((List<LiveTvChannel>) list).get(position).getTitle());
holder.title.requestFocus();

holder.title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(!isChecked){
holder.checkBox.setChecked(true);
}else{
holder.checkBox.setChecked(false);
}
}
});
}
});

break;

最佳答案

在模型类中取一个 boolean 值:

private boolean isCheck;

public boolean isCheck() {
return isCheck;
}

public void setCheck(boolean check) {
isCheck = check;
}

在适配器类中:

private CompoundButton.OnCheckedChangeListener checkedListener = new CompoundButton.OnCheckedChangeListener() {                      
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
int getPosition = (Integer) v.getTag(); // Here we get the position that we have set for the checkbox using setTag.
boolean flag= list.get(getPosition).isCheck();
for (int i = 0; i < list.size(); i++) {
if (getPosition == i) {
list.get(getPosition).setCheck(true);
} else {
list.get(getPosition).setCheck(false);
}
}

notifyDataSetChanged();
});;

在 Adapter 的 onBindViewHolder 中:

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.checkbox.setOnCheckedChangeListener(null);
holder.checkbox.setChecked(movieItems.get(position).isCheck());
holder.checkbox.setOnCheckedChangeListener(checkedListener);
}

关于java - RecyclerView 中电视应用程序的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38562478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com