Jestem początkującym samoukiem i cenię cierpliwość! Dzięki!OnClickListener wewnątrz niestandardowego alertdialog Android
W środowisku Eclipse wykonałem niestandardowy alert z własnym plikiem xml ("custom_dialog") i nazywa się "usernamealert".
Chcę, aby wyświetlał się komunikat, jeśli użytkownik nie podał jeszcze nazwy użytkownika (np. Nazwa_użytkownika.length == 0).
Wewnątrz tego układu mam textView ("Jakie jest twoje imię?"), EditText i przycisk ("usernameButton").
Przed umieszczeniem w onclicklistener przycisku, wszystko działało. To była moja (istotna) Java:
LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.custom_dialog, (ViewGroup) getCurrentFocus());
AlertDialog.Builder usernamebuilder = new AlertDialog.Builder(this);
usernamebuilder.setView(dialoglayout);
AlertDialog usernamealert = usernamebuilder.create();
Kiedy umieściłem na nim ten folder, to się zepsuł! Gdzie powinienem go umieścić?
(Oto co próbowałem ... wszystko w moim onCreate)
LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.custom_dialog, (ViewGroup)getCurrentFocus());
AlertDialog.Builder usernamebuilder = new AlertDialog.Builder(this);
usernamebuilder.setView(dialoglayout);
Button usernameButton = (Button) usernamealert.findViewById(R.id.usernameButton);
usernameButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//store username in sharedprefs
usernamealert.dismiss();
}
});
Po kodzie I powiedział:
if (username.length() == 0) {
usernamealert.show();
}
Ponownie pracował zanim zacząłem bawić z przycisk!!
afte r godzin wyszukiwania, a na końcu umieszczenie pytania, po prostu zorientowałem się, jak 2 minuty później! Wszystko, co powinienem zrobić inaczej, to zmiana sposobu znalezienia przycisku: Button usernameButton = (Button) usernamealert.findViewById (R.id.usernameButton); powinno być: Button usernameButton = (Button) dialoglayout.findViewById (R.id.usernameButton); // dialoglayout to cokolwiek nazwałeś Widok – delfina
Witamy w StackOverflow! Czy możesz przesłać swoje rozwiązanie jako odpowiedź i zaakceptować jako poprawną odpowiedź po tym, jak pozwala. Ułatwi to ludziom w przyszłości znalezienie rozwiązania, jeśli mają ten sam problem. – FoamyGuy
Twoja odpowiedź pomogła mi .. chociaż proszę, aby twoja odpowiedź była bardziej czytelna .. idę dodać swoją odpowiedź poniżej – mcr619619