【发布时间】:2018-01-03 01:23:35
【问题描述】:
我正在使用 Xamarin 创建我的应用程序。我有一个自定义 ListView atm。里面有单选按钮。这些单选按钮是可点击的,但每一个都是(多个)。
我想要的结果应该如下所示:当时只能检查 1 个。有一些 Java 解决方案,但它们根本没有帮助我。提前致谢。
这就是我创建列表视图的方式
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;
}
提前致谢!
【问题讨论】:
-
我看不到您在 ListView 中添加单选按钮的位置。你能用那个代码更新你的帖子吗? .通常要在 Android 中单独选择 Radiobutton,您需要使用 RadioGroup。
-
我在列表视图的自定义布局中添加了单选按钮。它将如何与 RadioGroup 一起工作,您能解释一下吗?
标签: c# listview xamarin radio-button baseadapter