gpt4 book ai didi

android - 如何在 Android 中禁用 RecyclerView 项目?

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:49 26 4
gpt4 key购买 nike

Textviews 和 Checkboxes 在 Recyclerview 中。最初选中所有复选框。我想阻止用户更改复选框状态,但我不想阻止 Recyclerview 滚动。我想在我的 fragment 类中而不是在适配器类中执行此操作。

如何防止用户更改复选框状态?

下面是在适配器类的onBindViewHolder中编写的示例代码。

holder.cbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//set your object's last status
tblFilm.setSelected(isChecked);
}
});

The above code used for first mode which allows user clicks on checkbox.

After that I have second mode where I do not want to get clicked on checkbox at all.

为此我所做的如下。

optionsoff(recyclerView);
private static void optionsOff(ViewGroup layout) {
layout.setEnabled(false);
layout.setClickable(false);
for (int i = 0; i < layout.getChildCount(); i++) {
View child = layout.getChildAt(i);
if (child instanceof ViewGroup) {
optionsOff((ViewGroup) child);
} else {
child.setEnabled(false);
child.setClickable(false);
}
}

我猜这个 optionsoff() 不工作。因为它没有禁用复选框。我仍然可以点击复选框。我需要有关禁用 Recyclerview 项目的第二种方法的帮助。

最佳答案

每个 CheckBox 都有方法 setEnabled .

onBindViewHolder您可以获得对所需复选框的引用并禁用它。

像这样:

public void onBindViewHolder(ViewHolder holder, final int position) {
holder.checkBox.setEnabled(data.get(position).isEnabled());
}

下面的答案也是通过 xml 的工作解决方案。

关于android - 如何在 Android 中禁用 RecyclerView 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36418939/

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