Android:从AutoCompleteTextview列出位置

时间:2014-03-02 17:22:14

标签: android autocompletetextview

如何从我从AutoCompleteTextview中选择的列表中获取项目的位置?

autoSearch = (AutoCompleteTextView) findViewById(R.id.autoSearch);
    autoSearch.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {

        }
    });
    adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_dropdown_item_1line, mLIST);
    autoSearch.setAdapter(adapter);

使用变量arg2只能获取自动完成列表的位置,而不是我的mLIST上项目的实际位置。

有没有办法获得实际位置而不是自动完成位置?

2 个答案:

答案 0 :(得分:2)

我不太确定这是一种直接的方式,但是知道列表中的所选项目,您可以使用列表中的mLIST方法在indexOf()中了解其位置。

假设每个项目都是唯一的,如果没有,这将无效。

答案 1 :(得分:2)

这是快速解决方案,imho非常懒,但它的工作原理。我假设你有独特的话,不是吗?否则你需要make customadapter并使用setTag()作为项目。

autoSearch.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                    long arg3) {
                Log.d("xxx", "xxx");

                String text = ((TextView) arg1).getText().toString();
                for(int i=0;i<mLIST.size();i++)
                {
                    if(mLIST.get(i).contains(text))
                    {
                        int lookingForId = i;
                        Log.d("xxx", "looking for id is " + i);
                        break;
                    }
                }
            }
        });