我有一个碎片,其中包含一个回收视图和一个浮动动作按钮。在回收视图中,每行包含默认设置为禁用的单选按钮。我的要求是,在浮动操作按钮单击事件时,我需要在每一行启用这些单选按钮。有什么解决办法吗?
提前谢谢..。
好的..。我有个解决办法。
这是我的密码。
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for (int i = 0; i <= adapter.getItemCount(); i++) {
View childVIew = recyclerView.getChildAt(i);
if (childVIew != null) {
RadioButton radioYes = childVIew.findViewById(R.id.radio_yes_my_health_info);
radioYes.setEnabled(true);
RadioButton radioNo = childVIew.findViewById(R.id.radio_no_my_health_info);
radioNo.setEnabled(true);
}
}
fab.setImageResource(R.drawable.ic_save_white_24dp);
recyclerView.getRecycledViewPool().setMaxRecycledViews(0, 0);
}
});现在,在FAB按钮点击,所有的单选按钮在我的回收视图将启用,我可以点击改变状态的每一个单选按钮。但在这里我有个问题。当我单击FAB按钮时,回收视图中的所有单选按钮都将被激活,但当我滚动回收视图时,所有这些单选按钮都将被禁用或重新禁用。请给我一个解决办法。
发布于 2017-12-15 08:51:48
您可以在适配器中设置一个标志,如
boolean isActivated = false;
public void setActivated(boolean activated) {
isActivated = activated;
}在onBindViewHolder()方法中,您可以检查标志并相应地设置标志的状态。
在FAB的OnClickListener中,呼叫
adapter.setActivated(true);//true or false as per your requirement
adapter.notifyDataSetChanged();这应该能行。
发布于 2017-11-26 22:11:17
单击按钮时,可以尝试遍历每个视图,如下所示:
for (int i = 0; i < adapter.getItemCount(); i++) {
View view = recycler.getLayoutManager().findViewByPosition(i);
view.setSelected(true); //Select item
notifyItemChanged(i); //Notify item changed
}https://stackoverflow.com/questions/47493061
复制相似问题