Spójrz na niestandardowe okno dialogowe poniżej. Mam pole edittext w oknie dialogowym i jeśli pole tekstowe jest puste, chciałbym wyłączyć positiveButton
. Mogę uzyskać charListener dla pola tekstowego, ale nie jestem pewien, jak mam ustawić, positivebutton
aby wyłączyć lub włączyć z tego odbiornika? Jakie jest odniesienie do przycisków dodatnich i ujemnych?
case DIALOG_TEXT_ENTRY:
// This example shows how to add a custom layout to an AlertDialog
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.alert_dialog_text_entry, null);
return new AlertDialog.Builder(AlertDialogSamples.this)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(R.string.alert_dialog_text_entry)
.setView(textEntryView)
.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked OK so do some stuff */
}
})
.setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked cancel so do some stuff */
}
})
.create();
}
Odpowiedzi:
Edytuj kompletne rozwiązanie ...
Oto przykładowy kod, spróbuj tego
Przycisk ujemny
Identyfikator przycisków : odniesienie alert_dialog.xml
Edytowano:
A setOnShowListener od poziomu 8 API (FroYo) robi to samo,
Edytowano
źródło
Żadna z tych odpowiedzi tak naprawdę nie rozwiązuje problemu.
Osiągam to za pomocą niestandardowego układu z EditTextem w nim i TextWatcherem w tym widoku.
źródło
d
Oto pełny kod włączania i wyłączania pozytywnego przycisku okna dialogowego:
źródło
Możesz wpisać odbiornik do pola tekstowego edycji i spróbować włączyć lub wyłączyć przyciski. To jest przykładowy kod dla platformy Xamarin.
źródło
Aby usunąć rekord z widoku listy bazy danych za pomocą posiadacza widoku, użyłeś tego kodu w metodzie getview ().
Czytaj więcej
źródło
Ten dialogFragment wykona zadanie za Ciebie. Zwróć uwagę, że okno dialogowe pozostanie otwarte po obróceniu ekranu, zachowując tekst, który użytkownik już wpisał. Jeśli nie chcesz, aby tak się stało, musisz odrzucić fragment funkcji onStop w Twojej aktywności. Podpis metody newInstance można zmienić na dowolny.
Dodaj narzędzia do swojej działalności (każdy rodzaj aktywności jest w porządku):
Utwórz diaglogFragment w swoim działaniu w następujący sposób:
Postępuj z wynikiem w swojej aktywności w ten sposób:
Musisz utworzyć identyfikator zasobu, więc dodaj ten zasób gdzieś pod res / values
źródło
To może ci pomóc, dzięki.
źródło