我有一个包含单选按钮的回收器视图。
现在我只想从列表中选择一个单选按钮并获得它的值
下面我附上了截图。
回收器视图的截图
下面是我到目前为止尝试的链接。
http://www.zoftino.com/android-recycerview-radiobutton
在回收视图中仅选择一个radiobutton
如何只选择一个RadioButton与RecolyerView Android?
从RecyclerView内部的RadioGroup获取以前的RadioButton值
在android中使用recyclerview单选按钮
但什么都没出来。
public class FilterValRecyclerAdapter extends
RecyclerView.Adapter<FilterValRecyclerAdapter.ValueViewHolder> {
private final FragmentActivity context;
private final ArrayList<FilterDefaultMultipleListModel> filterModels;
private FilterDefaultMultipleListModel filterDefaultMultipleListModel;
private final int resource;
private final int type;
OnItemClickListener mItemClickListener;
private RadioButton lastCheckedRB = null;
private int rbPosoition =0;
private int mSelectedItem = -1;
public FilterValRecyclerAdapter(FragmentActivity context, int
filter_list_item_layout,ArrayList<FilterDefaultMultipleListModel>
filterModels int type) {
this.context = context;
this.filterModels = filterModels;
this.resource = filter_list_item_layout;
this.type = type;
}
@Override
public ValueViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(this.context)
.inflate(resource, viewGroup, false);
return new ValueViewHolder(v,this.type);
}
@Override
public void onBindViewHolder(final ValueViewHolder viewHolder, final int
position) {
if(type==2){
viewHolder.rdgCategoryItems.setVisibility(View.VISIBLE);
viewHolder.rdCategoryItem.setVisibility(View.VISIBLE);
viewHolder.cbSelected.setVisibility(View.GONE);
viewHolder.subCategoryName.setText(filterModels.get(position).getName());
viewHolder.rdCategoryItem.setChecked(position == mSelectedItem);
}else{
viewHolder.rdgCategoryItems.setVisibility(View.GONE);
viewHolder.rdCategoryItem.setVisibility(View.GONE);
viewHolder.cbSelected.setVisibility(View.VISIBLE);
viewHolder.subCategoryName.setText(filterModels.get(position).getName());
viewHolder.cbSelected.setChecked(filterModels.get(position).isChecked());
}
}
@Override
public int getItemCount() {
return filterModels.size();
}
public void setItemSelected(int position) {
if (position != -1) {
filterModels.get(position).setChecked
(!filterModels.get(position).isChecked());
notifyDataSetChanged();
}
}
public interface OnItemClickListener {
void onItemClick(View view, int position);
}
public void setOnItemClickListener(final OnItemClickListener
mItemClickListener) {
this.mItemClickListener = mItemClickListener;
}
public class ValueViewHolder extends RecyclerView.ViewHolder implements
View.OnClickListener {
TextView subCategoryName;
CheckBox cbSelected;
RadioButton rdCategoryItem;
RadioGroup rdgCategoryItems;
View colorView;
public int type;
ValueViewHolder(View itemView, int type) {
super(itemView);
itemView.setOnClickListener(this);
subCategoryName = (TextView)
itemView.findViewById(R.id.txt_item_list_title);
cbSelected = (CheckBox) itemView.findViewById(R.id.cbSelected);
rdCategoryItem = (RadioButton)
itemView.findViewById(R.id.rdCategoty);
rdgCategoryItems = (RadioGroup)
itemView.findViewById(R.id.rdgCategory);
colorView = itemView.findViewById(R.id.colored_bar);
this.type = type;
}
@Override
public void onClick(View v) {
if (mItemClickListener != null) {
mItemClickListener.onItemClick(v, getPosition());
}
}
}
}
提前道谢。
在OnBindViewHolder()
方法中添加OnCheckedChnageListener()
并在OnCheckedChnageListener()
中维护MSelectedItem
viewHolder.rdCategoryItem.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mSelectedItem=position;
notifyDataSetChanged();
}
});
单选按钮通常表示组中用户可用的许多可选按钮之一。 每个按钮,wx.RadioButton类的对象在圆形按钮旁边都有一个文本标签。 为了创建一组可相互选择的按钮,第一个wxRadioButton对象的style参数设置为wx.RB_GROUP。 后续按钮对象将添加到组中。 wxPython API也包含wx.RadioBox类。 它的对象为组提供边框和标签。 组中的按钮可以水平或垂直排列。 wx.R
我使用以下代码来处理行点击。(来源) 然而,如果我想在每一行上都有一个删除按钮,这是可行的。我不知道如何用这个实现这一点。 我附加了OnClick侦听器来删除按钮,它可以工作(删除该行),但它也会在整行上触发onClick。 如果单击一个按钮,有谁能帮我避免整行单击吗。 谢谢。
在init2()中标识按钮Id的行上,我得到响应“尝试对空对象引用调用虚拟方法'Android.content.pm.applicationInfo Android.content.context.GetApplicationInfo()'”;
编辑:我的问题是ListView有没有比RecyclerView更有优势的地方?如果不是,那么为什么谷歌没有将它标记为贬值。此外,虽然我们可以在库中找到ListView,但如果我们创建了一个新的Project,但要使用RecyclerView,则必须使用另一个依赖项。
在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个:
如何从3个按钮中选择只有1个按钮?我设法设置/取消设置所选按钮的背景色。但无法选择唯一一个选定的按钮。 示例btn1、btn2、btn3。当我选择btn1时,btn1背景颜色发生变化,btn2和btn3不受影响。之后,当我再次选择btn2时,btn1背景色未设置,btn2背景色更改。因此此时选择btn2而不选择btn1和btn3。 下面是我的示例代码: