テーブルからデータを入力するスピナーがあります。ある列を表示できるようにする必要があるため、カスタムメイドのアダプターを使用していますが、テーブルに保存するデータは別の列からのものです。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 関数を使用してスピナーを設定できるように、青の位置を見つけるにはどうすればよいですか。アダプターで作成する必要がある関数はありますか?それは何でしょうか?