Android 如何从两个字符串对象列表绑定AutoCompleteTextView?
我的布局中有一个自动完成文本框,我正在使用自定义适配器填充自动完成建议Android 如何从两个字符串对象列表绑定AutoCompleteTextView?,android,Android,我的布局中有一个自动完成文本框,我正在使用自定义适配器填充自动完成建议 AutoCompleteTextView autocompleteView = (AutoCompleteTextView) findViewById(R.id.autocomplete); autocompleteView.setAdapter(new PlacesAutoCompleteAdapter(context, R.layout.autocomplete_list_item)); 点击建议时,所选值将显示在To
AutoCompleteTextView autocompleteView = (AutoCompleteTextView) findViewById(R.id.autocomplete);
autocompleteView.setAdapter(new PlacesAutoCompleteAdapter(context, R.layout.autocomplete_list_item));
点击建议时,所选值将显示在Toast中
autocompleteView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String description = (String) parent.getItemAtPosition(position);
Toast.makeText(context, description, Toast.LENGTH_SHORT).show();
}
});
我没有返回字符串的线性列表,而是修改了数据获取方法,以返回autoCompleteItem
对象的列表。但我无法将其绑定到我的自动完成文本框
我想要实现的是:
使用模型的类是正确的方法。当然,您必须更改
适配器。您必须扩展扩展ArrayAdapter
而不是ArrayAdapter
。getItem
也是如此,它必须返回autoCompleteItem
而不是String
。您还必须在ArrayList resultList
中更改ArrayList resultList
因为您没有重写getView()
,所以在模型的类中重写getString并让它返回placeName
在您的onItemClick
中,您将需要
autoCompleteItem item = (autoCompleteItem) parent.getItemAtPosition(position);
并且,您可以通过项
访问自动完成项
的成员
请注意,autocompleteetem
应该是autocompleteetem
,与java命名约定相对应。例如
public class AutoCompleteItem {
public String placeName;
public String placeID;
@Override
public String toString() {
return placeName;
}
}
使用模型的类是正确的方法。当然,您必须更改适配器。您必须扩展扩展ArrayAdapter
而不是ArrayAdapter
。getItem
也是如此,它必须返回autoCompleteItem
而不是String
。您还必须在ArrayList resultList
中更改ArrayList resultList
因为您没有重写getView()
,所以在模型的类中重写getString并让它返回placeName
在您的onItemClick
中,您将需要
autoCompleteItem item = (autoCompleteItem) parent.getItemAtPosition(position);
并且,您可以通过项
访问自动完成项
的成员
请注意,autocompleteetem
应该是autocompleteetem
,与java命名约定相对应。例如
public class AutoCompleteItem {
public String placeName;
public String placeID;
@Override
public String toString() {
return placeName;
}
}
你能发布更新的代码吗?你能发布更新的代码吗?