2016-09-27 1 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]; 

    } 
}); 

Ceci est mon code. En cela, quand je tape "Jo", John et Jospeh peuplez sur AutoCompleteTextView et quand je choisi John Je reçois String id comme . Mais en fait j'ai besoin est . Alors, comment puis-je obtenir au lieu de ?Comment obtenir la position de l'élément de la carte à partir de AutoCompleteTextView?

+0

Si vous mettez un point d'arrêt à l'intérieur du onItemClick, après avoir écrit "Jo", vous verrez ((ListView) adapterView) .getAdapter(). GetCount() = 2. Il y a 2 éléments à l'intérieur de l'adaptateur, « John "et" Joseph ". La solution @ n9153 pourrait fonctionner pour vous. – Lev

+0

@Lev Je le sais. Parce que ses chaînes de chargement commencent par "JO". Je souhaite connaître la position réelle de l'élément sélectionné dans le tableau de l'adaptateur, nommé nomArray. –

Répondre

2

Ce n'est pas la solution parfaite, mais vous pouvez le prendre comme la dernière option:

Lorsque vous passez la chaîne sélectionnée juste en boucle à travers votre tabNoms pour trouver sa position:

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

@Shaheer Palollathil La suggestion de n9153 fonctionnerait. Je change juste sa réponse selon votre code.

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 
     } 
    });