【问题标题】:AutocompleteTextView in Xamarin AndroidXamarin Android 中的 AutocompleteTextView
【发布时间】:2016-01-26 04:12:43
【问题描述】:

我是 Xamarin 的新手。我正在尝试将对象绑定到 Xamarin Android 中的 AutocompleteTextView。我可以附加适配器,但是当我在 AutoCompleteTextView 中输入文本时,对象按原样显示,而不是文本。我为 Item Click 添加了事件处理程序,并能够获取我想要显示的值。 以下是我的代码以及有关如何将值显示为建议的任何帮助或指针。

主要活动

公共类 MainActivity : Activity { 整数计数 = 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 { 获取;放; } 公共 int StationId { 获取;放; }

    public AutoCompleteTextModel ()
    {
    }
}

公共类 MainActivityModel { public List 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"
        });
}

}

【问题讨论】:

    标签: c# android xamarin xamarin.android


    【解决方案1】:

    _objGeneralDetailProductType是AutoCompleteTextView的objecttype

    您可以尝试将列表绑定到自动完成中,因为在我手中,我正在使用它并且它工作正常。

    【讨论】:

    • 您还应该定义列表中的数据类型。假设,如上所述。如果您使用上述列表,请向他解释如何访问“StationName”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多