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

    } 
}); 

Dies ist mein Code. In diesem, wenn ich "Jo", John und Jospeh Typ sind auf AutoCompleteTextView bevölkern und als ich John ausgewählt ich String id als . Aber eigentlich brauche ich . Wie kann ich also statt bekommen?Wie bekomme ich die Position eines Adapterelements von AutoCompleteTextView?

+0

Wenn Sie einen Haltepunkt in der onItemClick setzen, nach dem Schreiben "Jo" Sie werden sehen, ((Listview) adapterView) .getAdapter(). GetCount() = 2. Es gibt zwei Elemente innerhalb des Adapters, „John "und" Joseph ". @ n9153 Lösung könnte für Sie arbeiten. – Lev

+0

@Lev Ich weiß das. Weil seine Ladestrings mit "JO" beginnen. Ich möchte die tatsächliche Position des ausgewählten Elements aus dem Adapter-Array namens nameArray abrufen. –

Antwort

2

Dies ist nicht die perfekte Lösung, aber Sie es als letzte Option nehmen:

Wenn Sie passieren die ausgewählte Zeichenfolge nur eine Schleife durch Ihre Namearray auf seine Position zu finden:

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

@Shaheer Palollathil Der Vorschlag von n9153 würde funktionieren. Ich ändere nur seine Antwort entsprechend deinem 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 
     } 
    }); 
Verwandte Themen