如何从另一个项目更新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

回到顶部