2016-09-27 4 views
0
String[] idArray = {"1","2","3","4"}; 

String[] nameArray = {"Abraham","Abhi","John","Joseph"}; 


final ArrayAdapter<String> adapterTextView = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,nameArray); 

etItemName.setAdapter(adapterTextView); 

etItemName.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 

     String id = idArray[position]; 

    } 
}); 

Это мой код. В этом, когда я типа «Джо», Джон и Jospeh являются заселение на AutoCompleteTextView и когда я выбрал Джон я String id как . Но на самом деле мне нужно . Итак, как я могу получить вместо ?Как получить позицию элемента адаптера из AutoCompleteTextView?

+0

Если поставить точку останова внутри onItemClick, после написания "Джо" вы увидите ((ListView) adapterView) .getAdapter(). GetCount() = 2. Есть 2 элементов внутри адаптера, «Джон »и« Иосиф ». Решение @ n9153 может работать для вас. – Lev

+0

@Lev Я знаю это. Потому что его загрузочные строки начинаются с «JO». Я хочу получить фактическую позицию того, какой элемент выбран из массива адаптеров, который является именемArray. –

ответ

2

Это не идеальное решение, но вы можете принять его как последний вариант:

Когда вы передаете выбранную строку только петли через NameArray, чтобы найти свою позицию:

int position=-1; 
    for(int i=0;i<nameArray.length;i++){ 
    if(selectedItem.equalsIgnoreCase(nameArray[i])){ 
     position=i; 
    } 
    } 
1

@Shaheer Palollathil Предложение n9153 будет работать. Я просто меняю свой ответ в соответствии с вашим кодом.

AutoCompleteTextView t; 
    t.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      int pos = -1; 
      for(int i = 0; i < nameArray.length; i++){ 
       if(((AutoCompleteTextView)view).getText().toString().equals(nameArray[position])) 
        pos = position; 
        break; 
      } 
      String id = idArray[pos]; // should be your desired number 
     } 
    }); 
Смежные вопросы