2012-11-29 16 views
14

Mam tablicę (array1 z States) i AutoCompleteTextview, w którym jestem napełniania go tablica1. Kiedy wybrać wartość od AutocompleteTextView I wybrać state z AutoCompleteTextView rozwijanejjak znaleźć położenie elementu w AutoCompletetextview wypełnionej Array

Co chcę jest aby uzyskać pozycję elementu z tablica1 który ja wybranym.
Co próbowałem to OnClickEvent z AutocompelteTextView.

STATE.setOnItemClickListener(new OnItemClickListener(){ 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long rowId) { 
     String selection = (String) parent.getItemAtPosition(position); 
     String num = selection; 
    } 
}); 

To ss daje mi wartość którą wybrany z listy rozwijanej, ale chcę, aby uzyskać position of the value w array1. Na przykład mam tablicę o rozmiarze 4, jak tablica1 = {A, B, C, D}, a jeśli wybiorę B, powinien zwrócić mi pozycję B w tablicy, tj. 2.

Mam nadzieję, że wyjaśniłem. Z góry dziękuję.

+0

Można użyć zmiennej int pozycji dla pozycji wartości onItemClick słuchacza. –

+0

Item.setOnItemClickListener (nowa AdapterView.OnItemClickListener() { @Override public void onItemClick (AdapterView rodzic, Widok, int position, długo id) { //// id zawiera element, jeśli z bazy ItemNoSelected = id; } }); --- tutaj id jest id z bazy danych – Vijay

Odpowiedz

23

Użyj zmiennej pozycja w onItemClick.

STATE.setOnItemClickListener(new OnItemClickListener(){ 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long rowId) { 
     String selection = (String) parent.getItemAtPosition(position); 
     int pos = -1; 

     for (int i = 0; i < yourarray.length; i++) { 
      if (yourarray[i].equals(selection)) { 
       pos = i; 
       break; 
      } 
     } 
     System.out.println("Position " + pos); //check it now in Logcat 
    } 
}); 
+0

to nie daje mi prawidłowej pozycji Chcę pozycji zmiennej z tablicy, ale daje pozycję z AutocompleteDropdown widzę –

+0

@raghavchopra, sprawdź edytowaną odpowiedź –

+0

Ale co jeśli to jest zamiast ArrayList jest ArrayList

2

Użyj listy zamiast tablicy. Zaimplementuj onItemClickListener dla AutoCompleteTextView, a następnie użyj indexOf na liście, aby znaleźć indeks wybranego elementu.

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
  @Override 
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
      { 
       TextView txtvw=(TextView) view; 
       String str=txtvw.getText().toString(); 
       int index = contactNames.indexOf(str); 
      } 
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 jest z bazy danych, możemy użyć tego

Powiązane problemy