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
Odpowiedz
Ustaw widoczność tych pól na utracone.
txtview.setVisibility(View.GONE);
i kiedy chcesz, aby były widoczne korzystanie
txtPromo.setVisibility(View.VISIBLE);
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
Nie o to chodzi w tym pytaniu. EditTexts były już ukryte. –
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 :)
A w czym problem? Czego próbowałeś i co poszło nie tak? –
Opublikuj kod, który wypróbowałeś, abyśmy mogli go ulepszyć. –
Dlaczego przechowujesz te informacje w ukrytych polach, zamiast tylko zmiennych należących do klasy pliku Actvity/Fragment? – Siebe