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" 
     }); 
} 

}

enter image description here

_objGeneralDetailProductType是AutoCompleteTextView

的OBJECTTYPE

你可以试试这个绑定在自动列表中完成,因为在我的手,我使用它,它是工作正常。

+0

您还应该定义列表中的数据类型。假设,如上所述。向他解释如何使用上面的列表,如何访问“StationName”。 –