设置和检索微调器值就像asp的dropdownlist - mono for android

时间:2012-08-22 12:31:31

标签: c# spinner xamarin.android

我真的不知道如何使用微调器,就像asp.net的下拉列表,你有一个为用户显示的值,以及一个隐藏的自定义值,我可以使用更改事件。

就像在asp.net中一样,你可以这样做:

string value = "somevalue";
dropdownlistID.Items.Add(new ListItem("text",value));

如果我可以使用dropdownlistID.SelectedValue

检索它

如果有人有链接可以向我解释这个或任何其他建议,请帮忙! 我正在vs2010制作一个Android应用程序,用于Android的单声道。

问候,马库斯

1 个答案:

答案 0 :(得分:0)

您需要创建一个ArrayAdapter,就像填充ListView一样。

 spinTime = FindViewById<Spinner>(Resource.Id.spinTimeChoose);
 List<string> spinnerItems = new List<string>();
 ArrayAdapter adapter  new ArrayAdapter<string> (this,Android.Resource.Layout.SimpleSpinnerItem,spinnerItems);

 adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
 spinTime.Adapter = adapter;
 spinTime.ItemSelected += (s, e) =>
 { 
  Log.Debug("SpinnerItems", spinnerItems[e.Position]);           
 }

希望有所帮助

编辑:我想我现在得到你的问题:) 下面是一个自定义适配器的示例,用于清除列表。抱歉硬编码的德国字符串。重要的部分是getView方法。每当新的listitem进入用户视图时,它就会被调用。你必须给新视图充气,或者如果不是null,则重用convertView并用列表中的值填充它。

class ClearanceListAdapter : BaseAdapter
{
    private readonly List<Clearance> _clearances;
    private readonly Activity _context;

    public ClearanceListAdapter(List<Clearance> Clearances, Activity context)
    {
        _clearances = Clearances;
        _context = context;
    }

    public override int Count
    {
        get { return _clearances.Count(); }
    }

    public override Java.Lang.Object GetItem(int position)
    {
        return null;
    }

    public override long GetItemId(int position)
    {
        return position;
    }

    public Clearance GetClearance (int position)
    {
        return _clearances.ElementAt(position);

    }

    public override Android.Views.View GetView(int position, Android.Views.View convertView, Android.Views.ViewGroup parent)
    {

        View view = (convertView ?? _context.LayoutInflater.Inflate(Resource.Layout.ClearanceListItem, parent, false));

        Clearance clearance = _clearances[position];


        view.FindViewById<TextView>(Resource.Id.txtClearanceDescription).Text = clearance.Description;
        view.FindViewById<TextView>(Resource.Id.txtStartDate).Text = clearance.Start.ToString("g");
        view.FindViewById<TextView>(Resource.Id.txtEndDate).Text = clearance.End.ToString("g");

        return view;
    }
}