私はテーブルからデータを入力するスピナーを持っています。だから私は1つの列を表示することができる必要があるためカスタムのアダプタを使用していますが、テーブルに保存するデータは別の列からです。色と呼ばれるテーブルがあるとします。 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);
この部分はすべて正常に動作します。しかし、もし私が価値を持っているなら、私はスピナーをどのようにしてやりたいのですか?たとえば、スピナーの値を "Blue"に設定したいのですが、Blueの配置を見つけるにはどうすればいいですか?SetSelection関数を使ってスピナーを設定することができます。私のアダプタで作成する必要のある機能は何ですか?
機能を追加IndexOfの定義がなく、Android.widget.spinner型の最初の引数を受け入れる拡張メソッド 'IndexOf'はありません – mlwright
私が書いたコードは 'spinner.IndexOf'ではなく' colors.IndexOf'でしたか? – Stuart