2015-10-26 2 views
1

Я новичок в Xamarin. Я пытаюсь связать объект с AutocompleteTextView в Xamarin Android. Я могу подключить адаптер, но когда я ввожу текст в AutoCompleteTextView, объект отображается как есть, а не текст. Я добавил обработчик событий для элемента Click и могу получить значение, которое хочу отобразить. Ниже приведен мой код и любая помощь или указатели о том, как получить значение в качестве предложения.AutocompleteTextView в Xamarin Android

Основная деятельность

класс MainActivity общественности: активность { граф INT = 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 { общественная строка StationName {получить; задавать; } 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" 
     }); 
} 

}

ответ

2

enter image description here

_objGeneralDetailProductType является ObjectType из AutoCompleteTextView

Вы можете попробовать это, чтобы привязать список в автозаполнения, потому что в моей руке, я использую его, и это работающ отлично.

+0

Вы также должны определить, какой тип данных указан в вашем списке. Предположим, как указано выше. Объясните ему, как вы можете получить доступ к «StationName», если вы используете указанный выше список. –

Смежные вопросы