2014-09-22 11 views
5

Mam AutoCompleteTextView, który sugeruje nazwę miejsca zapisanego w bazie danych MySQL przez wywołanie api, gdy zmienia się tekst, używając onTextChanged. Odpowiedź to tablica JSON z wieloma elementami, takimi jak nazwa miejsca, identyfikator, klucz_lokalny, typ zapytania, typ_początku itd. (Każdy ma swój własny cel). Mam 3 ukryte pole EditText. Na setOnItemClickListener, gdy użytkownik wybierze nazwę miejsca, chcę, aby te 3 ukryte pola miały automatycznie ustawioną wartość za pomocą location_key, query_type i request_type, ponieważ muszę wysłać te 3 wartości z nazwą miejsca, aby uzyskać wymagany wynik z api.Ustaw wartość ukrytego pola z odpowiednimi danymi elementu wybranego z AutoCompleteTextView

+1

A w czym problem? Czego próbowałeś i co poszło nie tak? –

+0

Opublikuj kod, który wypróbowałeś, abyśmy mogli go ulepszyć. –

+0

Dlaczego przechowujesz te informacje w ukrytych polach, zamiast tylko zmiennych należących do klasy pliku Actvity/Fragment? – Siebe

Odpowiedz

-1

Ustaw widoczność tych pól na utracone.

txtview.setVisibility(View.GONE); 

i kiedy chcesz, aby były widoczne korzystanie

txtPromo.setVisibility(View.VISIBLE); 
+0

Nie pytam, jak ukryć pole EditText, pytam, jak wypełnić te ukryte pola innymi danymi odpowiadającymi wybranemu elementowi, gdy użytkownik wybierze element z widoku autouzupełniania. – carefree

+1

Nie o to chodzi w tym pytaniu. EditTexts były już ukryte. –

0

Po kliknięciu na polu PLACE_NAME, ukryte EditTexts powinny uzyskać wartości musisz wysłać do bazy danych. Można to łatwo uzyskać, wykonując następujące czynności:

textMessage.addTextChangedListener(new TextWatcher(){ 
    public void afterTextChanged(Editable s) { 
     if (textMessage == "//Name of place") { 
      editText1.setText "//whatever you need"; 
      editText2.setText "//whatever you need"; 
      editText3.setText "//whatever you need"; 
     } 
    } 
}); 

Alternatywnie, chciałbym użyć pokrętła do nazwy miejsca i będzie kodować je z czymś podobnym do tego:

@Override public void onClick (View arg0) {

int range = spnDonate.getSelectedItemPosition(); 

    Donator_Name = tboxName.getText().toString(); 
    switch(range) { 
     case 0: 
      editText1.setText = "//whatever you need"; 
      editText2.setText = "//whatever you need"; 
      editText3.setText = "//whatever you need"; 
      break; 
     case 1: 
      editText1.setText = "//whatever you need"; 
      editText2.setText = "//whatever you need"; 
      editText3.setText = "//whatever you need"; 
      break; 
     case 2: 
      editText1.setText = "//whatever you need"; 
      editText2.setText = "//whatever you need"; 
      editText3.setText = "//whatever you need"; 
      break; 
    } 
} 

Nadzieja to pomaga :)

+0

Czy ta odpowiedź ci pomogła? –

+0

Nie, skończyłem używając niestandardowego AutoCompleteTextView i ustawiłem odpowiednio wartość – carefree

+0

@carefree czy możesz pokazać, jak to zrobiłeś? odpowiedz na pytanie samodzielnie plz :) – Abhigyan

Powiązane problemy