2012-11-20 10 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); 

Names seçilen Metin dizini almak nasıl bir dize dizidir.bir AutoCompleteTextView

Açılır menüden seçilen metnin dizini alınabilir mi?

Teşekkür ederiz.

+0

bir çözüm buluyor musunuz biz kullanabilirsiniz veritabanından mı? – Accollativo

+1

http://stackoverflow.com/questions/4819813/how-to-get-text-from-autocomplete-textview-android –

+0

Çözümüne göz atmayı deneyin. Çözüm: http://stackoverflow.com/questions/4819813/how -to-get-autocomplete-textview-android için metin-37343444 # 37343444 – Shivang

cevap

5
+5

Bu her zaman ** - 1 ** değerini döndürür. Sizin tarafınızdan sağlanan bağlantıda verilen ** ListView.INVALID_POSITION **. –

+0

Bu, açılır liste açıkken çalışır, ancak AutoCompleteTextView'ın girişine bağlı olarak liste (ve dizin için) değiştiğinden dolayı zor bir soru soruyorsunuz ... Eğer 'Ad' bir 'List ' ise, '' seçildikten sonra bir dizenin konumunu bulmak için indexOf(). – Sam

5

Basitçe AutoCompleteTextView, sonra bulmak için listenizde indexOf kullanmak onItemClickListener Uygulamak 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

Evet. Bu denediğim ilk şey. Ama burada ** açılan **, ** dize seçilen dizinin Dizin indeksi değil seçilen ** pozisyon ** verir :( –

+0

Sipariş aynı kalır değil mi? Array ve açılan listeden gelen liste? –

+0

Ama ilk birkaç ** Karakterler ** i girdiğimde, açılan değişiklikler (AutoCompleteTextView'un Beklenen davranışı) –

2

için OnItemClickListener veya OnItemSelectedListener (tıklandığında öğe için) (Trackball kullanarak selcted öğeler için, Yukarı/Aşağı tuşları) ekleyin Seçilen öğenin indeksi.

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'de indexOf yöntemi yoktur! – 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