2012-11-20 41 views
10
AutoCompleteTextView mActv = (AutoCompleteTextView) findViewbyId(R.id.m_actv); 
ArrayAdapter<String> AutoCompleteAdapter = new ArrayAdapter<String>(this, 
        R.layout.dropdown_text, Names); 
mActv.setAdapter(AutoCompleteAdapter); 

名稱是一個字符串數組。如何獲得在AutoCompleteTextView中選擇的文本的索引

是否可以從下拉列表中選擇文字索引

謝謝。

+0

你找到一個解決方案? – Accollativo

+1

嘗試看看http://stackoverflow.com/questions/4819813/how-to-get-text-from-autocomplete-textview-android – 2014-11-09 13:30:01

+0

解決方案: http://stackoverflow.com/questions/4819813/how -to-get-text-from-autocomplete-textview-android/37343444#37343444 – Shivang

回答

5
+5

這總是返回** - 1 **。這是您提供的鏈接中提供的** ListView.INVALID_POSITION **。 –

+0

這可以在下拉列表打開的情況下使用,但是您要問一個棘手的問題,因爲列表(以及索引)根據AutoCompleteTextView的輸入而變化...如果'Names'是一個'列表',那麼您可以使用' indexOf()'在被選擇後查找字符串的位置。 – Sam

5

只需添加OnItemClickListener(用於點擊項目)或OnItemSelectedListener(使用軌跡球selcted項目,上/下鍵)到AutoCompleteTextView

mActv.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View arg1, int pos, 
       long id) { 
       String item = arg1.getItemAtPosition(pos); 
       //your stuff 
      } 
    }); 
+7

是的。這是我嘗試的第一件事。但是,在這裏它給出**位置**從**下拉列表中選擇的文本**,而不是從我用來填充的數組中的字符串的索引:( –

+0

是不是順序保持不變?我的意思是在數組和下拉列表中的列表? –

+0

但取決於最初的幾個**字符**我輸入,下拉更改(AutoCompleteTextView的預期行爲)。 –

2

實現onItemClickListener爲AutoCompleteTextView,然後使用的indexOf你的名單上找到所選項目的索引。

actvCity.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
      int index = cityNames.indexOf(actvCity.getText().toString()); 
      // Do Whatever you want to do ;) 
    } 
}); 
+0

AutoCompleteTextView上沒有indexOf方法! – aidinMC

0
Item.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
        //// id contains item if from database 
        ItemNoSelected = id; 
       } 
      }); 

ID是從數據庫中,我們可以用它

相關問題