我有一个微调器,我正在用表格中的数据填充。所以我使用的是定制的适配器,因为我需要能够显示一列,但我将存储在表中的数据来自另一列。假设我有一张名为 color 的表。它有一个 ID 字段和 Desc 字段。因此,当您选择一种颜色时,我的微调器将显示红色、绿色、蓝色、黑色,我需要获取该颜色的 ID 并将其存储。我制作了微调器并且工作正常。我创建了一个客户适配器来拉入表格,这是我的适配器。
class SpinnerAdapter : BaseAdapter
{
private IEnumerable<Color> _Color;
private Activity _context;
public SpinnerAdapter(Activity context, IEnumerable<Color> Color)
{
_context = context;
_Color = Color;
}
public override View GetView(int position, View convertView,
ViewGroup parent)
{
var view = (convertView ?? _context.LayoutInflater.Inflate(
Resource.Layout.SpinnerList, parent, false)) as LinearLayout;
var Color = _Color.ElementAt(position);
view.FindViewById<TextView>(Resource.Id.ID).Text =
Color.ColorCd.ToString();
view.FindViewById<TextView>(Resource.Id.TimeID).Text =
Color.ColorDesc.ToString();
return view;
}
public override int Count
{
get { return _Color.Count(); }
}
public Color GetColor(int position)
{
return _Color.ElementAt(position);
}
public override Java.Lang.Object GetItem(int position)
{
return null;
}
public override long GetItemId(int position)
{
return position;
}
}
在我的活动页面中,我将适配器设置为微调器,如下所示;
Spinner spAdapter = FindViewById<Spinner>(Resource.Id.spAdapter);
spAdapter.ItemSelected += new EventHandler<ItemEventArgs>(spAdapter_ItemClick);
var Color = ((LeavApplication)Application).LeaveRepository.GetAllColor();
spAdapter.Adapter = new SpinnerAdapter(this, Color);
那部分一切正常。但如果我有一个值,我希望微调器设置为我该怎么做。例如,我想将微调器的值设置为“蓝色”,如何找到蓝色的位置,以便我可以使用 SetSelection 函数来设置微调器。我需要在我的适配器中创建一个功能吗?它会是什么。