2014-03-02 35 views
0

如何从我从AutoCompleteTextview中选择的列表中获取某个项目的位置?Android: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上的项目的实际位置。

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

+0

你可以发布如何看起来你的名单? – deadfish

回答

1

这里是快速解决方案,imho非常懒,但它的工作原理。我假设你有独特的话,是不是?否则,您需要制作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; 
        } 
       } 
      } 
     }); 
+0

正在考虑走这条路线,但我希望有一个更直接的方法。我的列表中的一些项目也有相同的内容。但我可以用这个。我只需要将我的方法改为我的应用程序。谢谢! – Tsukihara

2

我不太确定是否有直接的方法,但知道列表中的选定项目,您可以在列表中使用indexOf()方法知道它在mLIST中的位置。

假设每个项目是唯一的,如果不是,这将无法正常工作。