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

Namen ist ein String-Array.Wie den Index des Textes in einem

Ist es möglich, den Index des ausgewählten Textes aus dem Dropdown zu erhalten ??

Vielen Dank.

+0

Sie eine Lösung finden Sie? – Accollativo

+1

versuchen Sie einen Blick auf http://stackoverflow.com/questions/4819813/how-to-get-text-from-autocomplete-textview-android –

+0

Lösung: http://stackoverflow.com/questions/4819813/how -to-get-text-from-autocomplete-textview-android/37343444 # 37343444 – Shivang

Antwort

5
+5

Dies liefert immer ** - 1 **. Welches ist die ** ListView.INVALID_POSITION ** wie in dem von Ihnen angegebenen Link angegeben? –

+0

Dies funktioniert, während die Dropdown-Liste geöffnet ist, aber Sie stellen eine knifflige Frage, da sich die Liste (und damit der Index) in Abhängigkeit von der AutoCompleteTextView-Eingabe ändert ... Wenn 'Names' eine' List 'ist, können Sie' indexOf() ', um die Position der a-Zeichenfolge nach der Auswahl zu finden. – Sam

5

Einfach OnItemClickListener (für geklickt Artikel) oder OnItemSelectedListener hinzufügen (für Artikel selcted einen Trackball, Auf/Ab-Tasten) zum 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

Ja. Dies ist das erste, was ich ausprobiert habe. Aber hier gibt es die ** Position ** des aus dem ** Dropdown ** ausgewählten Textes, nicht den Index des Strings aus dem Array, den ich bevölkert habe :( –

+0

Ist die Reihenfolge nicht gleich? Ich meine in der Array und die Liste, die in der Dropdown-Liste kommt? –

+0

Aber abhängig von den ersten paar Zeichen ** Ich tippe ein, ändert sich das Dropdown (erwartetes Verhalten eines AutoCompleteTextView). –

2

Implementieren onItemClickListener für AutoCompleteTextView, verwenden Sie dann indexOf auf Ihrer Liste zu finden der Index des ausgewählten Artikels.

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

Es gibt keine Methode indexOf auf AutoCompleteTextView! – 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 aus der Datenbank ist, können wir es verwenden

Verwandte Themen