Android自动填充功能获取整个列表中所选项目的位置

时间:2017-05-17 12:11:19

标签: android autocompletetextview

是的,我知道AdapterView.OnItemClickListener回调中有位置参数,但此参数返回过滤(显示)列表的位置。 例如,我有_countriesEvisitor arraylist,我希望通过查看这样的位置来选择国家/地区对象:

 public AdapterView.OnItemClickListener setOnCitizenshipAutocompleteItemClickListener(){


    return (adapterView, view, position, id) -> {
        CountryEvisitor citizenship=new CountryEvisitor();

        citizenship=_countriesEvisitor.get(position);
        _visit.setCitizenship(citizenship);
    };
}

_countriesEvisitor有250个项目,当我开始输入例如Hrvatska时,我只获得一个项目,它的位置为0(因为它是第一个且只显示列表中的一个)尽管它是在_countriesEvisitor列表中的第247个列表,其中包含自动完成适配器列表。

如何获得所选国家/地区?

2 个答案:

答案 0 :(得分:-1)

使用如下代码。

  public AdapterView.OnItemClickListener setOnCitizenshipAutocompleteItemClickListener(){
  return (adapterView, view, position, id) -> {

    CountryEvisitor citizenship= (CountryEvisitor ) view.getAdapter().getItem(position);
    citizenship=_citizenship.getcitizenship();
    _visit.setCitizenship(citizenship);

  };}

答案 1 :(得分:-2)

保留原始项目的第二个列表,并搜索与您的搜索结果匹配的列表并获取该项目的索引

...
_countriesEvisitor.get(position);
int result = -1;
for(int x = 0; x < originalList.size; x++) {
    if (/* some check here */) {
        result = x;
        break;
    }
}
if (result != -1) {
    // check if result is not -1 and use the index
}