如何设置一个默认值MvxSpinner
问题描述:
- 我想修改
MvxSpinner
设置默认值说 “选择一个值”。 - 我提到this solution覆盖的方法,但我 无法重写的方法。
如何在一个优雅的方式如何设置一个默认值MvxSpinner
XML
<Mvx.MvxSpinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30dp"
android:background="@drawable/dropdown"
local:MvxBind="ItemsSource Cruise; SelectedItem CruiseLineSelected; Visible CruiseAndShipSelectionVisibility"
local:MvxItemTemplate="@layout/spinner_cruise_list"
local:MvxDropDownItemTemplate="@layout/spinner_cruise_list"
android:text="Select a cruise"
android:layout_marginBottom="20dp"
android:id="@+id/mvxSpinnerCruise" />
答
我找到一个简单的解决方案设置默认文本Spinner
,它实现这一目标工作正常,我认为你可以使用Mvvm
通过自己实现这个功能,这里是 代码:
public class MySpinnerAdapter<T> : ArrayAdapter<T>
{
private Context mContext;
private int mTextResourceId;
public MySpinnerAdapter(Context context, int textViewResourceId):base(context,textViewResourceId)
{
mContext = Context;
mTextResourceId = textViewResourceId;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
View view = base.GetView(position, convertView, parent);
if (position == Count)
{
TextView a = (view.FindViewById<TextView>(Android.Resource.Id.Text1));
a.Text = "";
TextView b = (view.FindViewById<TextView>(Android.Resource.Id.Text1));
b.Hint = GetItem(Count).ToString(); //"Hint to be displayed"
}
return view;
}
public override int Count => (base.Count - 1);
}
当使用它:
spinner = FindViewById<Spinner>(Resource.Id.spinner);
var adapter = new MySpinnerAdapter<string>(this, Android.Resource.Layout.SimpleSpinnerDropDownItem);
adapter.Add("php");
adapter.Add("java");
adapter.Add("C++");
adapter.Add("C");
adapter.Add("Select a cruise");
spinner.Adapter = adapter;
spinner.SetSelection(adapter.Count); //display hint
Here是Spinner
。