如何从另一个项目更新recyclerview项目中的数据?
我有RecyclerView
一个问题,我有RecyclerView
其在每一行项radio button
和其他一些意见,如何从另一个项目更新recyclerview项目中的数据?
我想究竟是什么,当RadioButton
由用户签我想取消其他RadioButton
(如果任何东西都会被检查)。由于它是Recyclerview
我不能使用radiogroup。
在适配器onBindViewHolder
我写这篇文章侦听每个单选按钮
holder.radioButton.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
selectedPosition = holder.getAdapterPosition();
Toast.makeText(activity, "section: " + selectedPosition, Toast.LENGTH_SHORT).show();
}
});
我怎样才能使一个单选按钮,选择取消选中?
换句话说,我如何更新另一个项目视图侦听器recyclerview特定项目中的视图属性?
回答:
您必须对将selectedItem参考在全球范围内的适配器,然后更新所有项目时,用户检查一个新的单选按钮。
public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> { private int selectedItemPosition = -1;
}
,做在你的适配器的onBindViewHolder()
方法的东西,
@Override public void onBindViewHolder(final Adapter.ViewHolder holder, int position) {
holder.radioButton.setChecked(holder.getAdapterPosition()==selectedItemPosition);
holder.radioButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedItemPosition = holder.getAdapterPosition();
notifyDataSetChanged();
}
});
}
回答:
试试这个::
if (position == selectedPosition) { holder.radioButton.setChecked(true);
Toast.makeText(activity, "section: " + selectedPosition, Toast.LENGTH_SHORT).show();
} else {
holder.radioButton.setChecked(false);
}
holder.radioButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedPosition = holder.getAdapterPosition();
notifyDataSetChanged();
}
});
以上是 如何从另一个项目更新recyclerview项目中的数据? 的全部内容, 来源链接: utcz.com/qa/261818.html