Xamarin Android中的AutocompleteTextView
问题描述:
我是Xamarin的新手。我试图将一个对象绑定到Xamarin Android中的AutocompleteTextView。我能够附加适配器,但是当我在AutoCompleteTextView中输入文本时,对象按原样显示,而不是文本。我为Item Click添加了事件处理程序,并能够获取我想要显示的值。 下面是我的代码和任何帮助或指示如何得到显示作为建议的价值。Xamarin Android中的AutocompleteTextView
主要活动
公共类MainActivity:活动 { 诠释计数= 1;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
Button button = FindViewById<Button> (Resource.Id.myButton);
//button.Text =
MainActivityModel Mv = new MainActivityModel();
ArrayAdapter<AutoCompleteTextModel> adapter = new ArrayAdapter<AutoCompleteTextModel>
(this,Android.Resource.Layout.SimpleDropDownItem1Line,Mv.StationsList);
AutoCompleteTextView actv = FindViewById<AutoCompleteTextView>(Resource.Id.source);
actv.Adapter = adapter;
//actv.Threshold = 1;
actv.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => {
actv.Text = Mv.StationsList[e.Position].StationName;
};
actv.TextChanged += (object sender, Android.Text.TextChangedEventArgs e) => {
new ArrayAdapter (
this,
Android.Resource.Layout.SimpleListItem1,
Mv.StationsList.FindAll (a => a.StationName.Contains(actv.Text)).ToArray());
};
button.Click += delegate {
button.Text = string.Format ("{0} clicks!", count++);
};
}
}
AutoCompleteTextViewModel
公共类AutoCompleteTextModel { 公共字符串工作站名称{获得;组; } public int StationId {get;组; }
public AutoCompleteTextModel()
{
}
}
公共类MainActivityModel { 公开名单StationsList;
public MainActivityModel()
{
StationsList = new List<AutoCompleteTextModel>();
StationsList.Add (new AutoCompleteTextModel() {StationId = 1, StationName = "Chennai Beach"
});
StationsList.Add (new AutoCompleteTextModel() {StationId = 1, StationName = "Chennai Fort"
});
StationsList.Add (new AutoCompleteTextModel() {StationId = 1, StationName = "Chennai Park"
});
StationsList.Add (new AutoCompleteTextModel() {StationId = 1, StationName = "Chennai Egmore"
});
StationsList.Add (new AutoCompleteTextModel() {StationId = 1, StationName = "Chetpet"
});
}
}
您还应该定义列表中的数据类型。假设,如上所述。向他解释如何使用上面的列表,如何访问“StationName”。 –