我使用Xamarin创建我的应用程序。我有一个自定义ListView atm。与Radiobuttons在其中。这些Radiobuttons是可点击的,但它们中的每一个都是(多个)。
我想要的结果应该如下所示:当时只能检查1。有一些Java解决方案,但它们根本不帮助我。提前谢谢。
这就是我创建Listview的方式
mListView = FindViewById<Android.Widget.ListView> (Resource.Id.listView1);
mItems = new List<Artikel>();
mItems.Add(new Artikel() { Name = "X", Amount = 50 });
mItems.Add(new Artikel() { Name = "Y", Amount = 300 });
mItems.Add(new Artikel() { Name = "Z", Amount = 80 });
mItems.Add(new Artikel() { Name = "A", Amount = 174 });
MyListViewAdapter adapter = new MyListViewAdapter(this, mItems);
mListView.Adapter = adapter;
Artikel.cs
class Artikel
{
public string Name { get; set; }
public int Amount { get; set; }
}
MyListViewAdapter.cs
private List<Artikel> mItems;
private Context mContext;
public MyListViewAdapter(Context context, List<Artikel> items)
{
mItems = items;
mContext = context;
}
public override int Count
{
get { return mItems.Count; }
}
public override long GetItemId(int position)
{
return position;
}
public override Artikel this[int position]
{
get { return mItems[position]; }
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
View row = convertView;
if (row == null)
{
row = LayoutInflater.From(mContext).Inflate(Resource.Layout.listview_row, null, false);
}
TextView txtName = row.FindViewById<TextView>(Resource.Id.Name);
txtName.Text = mItems[position].Name;
TextView txtamount = row.FindViewById<TextView>(Resource.Id.Amount);
txtamount.Text = mItems[position].Amount.ToString();
return row;
}
提前致谢!
答案 0 :(得分:0)
正如我在评论中所说,当你希望你的RadioButtons是独占的(只有一个被上下文选中)时,你可以将它们包装在RadioGroup中。
想象一下,这是ListView项目的自定义布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView android:id="@+id/tvName"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView android:id="@+id/tvAmount"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<RadioGroup android:layout_height="wrap_content" android:layout_width="match_parent">
<RadioButton
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/rb1"
android:text="Option 1" />
<RadioButton
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/rb2"
android:text="Option 2" />
<RadioButton
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/rb3"
android:text="Option 3" />
<RadioButton
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/rb4"
android:text="Option 4" />
</RadioGroup>
</LinearLayout>
添加RadioGroup
用户只能从每个ListView
项目中选择一个RadioButton
希望这会有所帮助.-