【发布时间】:2015-10-12 09:44:56
【问题描述】:
AutoCompleteTextView 允许用户从有效值列表中选择一个字符串。就像,我想,每个想要使用这个 yoke 的开发人员,我对用户选择的 id 比它的字符串标签更感兴趣。有没有办法检索所选对象的 id 属性,或者它在源数组中的索引?
以下 C# 代码让用户从 SomeObject 列表中进行选择。我在 Xamarin 工作,但不要让这让你失望。修复我在 java 中的问题,我会很乐意让它在 C# 中工作
public class AutoCompleteField : PhysicalField
{
protected AutoCompleteTextView actv;
public AutoCompleteField(IList<SomeObject> choices, LogicalField logical, string id)
: base(logical, id)
{
_choices = choices;
}
protected ArrayAdapter<SomeObject> _adapter;
public override void addToView(LayoutInflater inflater)
{
var ctx = App_NotMobility.CurrentActivity;
actv = new AutoCompleteTextView(ctx);
actv.Id = _form.generateId();
// test choices
var _choices = new List<SomeObject>();
_choices.Add(new SomeObject(234, "Oranges"));
_choices.Add(new SomeObject(456, "Apples"));
_choices.Add(new SomeObject(789, "Bananas"));
_adapter = new ArrayAdapter<SomeObject>(ctx, Android.Resource.Layout.SimpleDropDownItem1Line, _choices);
actv.Adapter = _adapter;
actv.ItemClick += delegate(object sender, AdapterView.ItemClickEventArgs e)
{
// HOW DO I ACCESS THE ID OR THE INDEX OF USER'S SELECTION ?????????????????
};
_form.AddView(actv);
}
}
public class SomeObject
{
public int Id { get; set; }
public string Label { get; set; }
public SomeObject(int id, string label)
{
Id = id;
Label = label;
}
public override string ToString()
{
return Label;
}
}
【问题讨论】:
-
参见
android.widget.AdapterView.OnItemClickListener#onItemClick文档 -
您可以为此使用自定义适配器。但是,发布一个示例以进行更多说明会更好:)
-
问题不清楚.....请更新你的代码
-
您说的是哪个?并在此处粘贴您的代码
标签: android autocompletetextview