¡Soy un principiante autodidacta y aprecio la paciencia! ¡Gracias!OnClickListener dentro de un cuadro de alerta personalizado Android
En Eclipse, hice un diálogo de alerta personalizado con su propio archivo xml ("custom_dialog") y se llama "usernamealert".
Quiero una alerta emergente si el usuario aún no ha ingresado un nombre de usuario (es decir, username.length == 0).
Dentro de este diseño tengo un textView ("¿Cuál es tu nombre?"), EditText y botón ("usernameButton").
Antes de poner en el onclicklistener el botón, todo funcionó. Esta fue mi (relevante) 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();
Cuando puse el onclicklistener, ¡se rompió! ¿Dónde debería haberlo puesto?
(Lo siguiente es lo que había intentado ... todo en mi 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();
}
});
Después de que el código dije:
if (username.length() == 0) {
usernamealert.show();
}
Una vez más, funcionó antes de empezar a jugar con el ¡¡botón!!
Afte r horas de búsqueda, y finalmente publicando la pregunta, ¡lo descubrí como 2 minutos después! Todo lo que debería haber hecho diferente fue cambiar cómo encontró el botón: Button usernameButton = (Button) usernamealert.findViewById (R.id.usernameButton); debería haber sido: Button usernameButton = (Button) dialoglayout.findViewById (R.id.usernameButton); // dialoglayout es lo que usted llamó la Vista – delfina
¡Bienvenido a StackOverflow! ¿Puedes publicar tu solución como respuesta y aceptarla como la respuesta correcta después de que te permita hacerlo? Eso facilitará que las personas en el futuro encuentren la solución si tienen el mismo problema. – FoamyGuy
su respuesta me ayudó ... aunque por favor haga que su respuesta sea más legible. Voy a agregar mi respuesta debajo de – mcr619619