Estoy utilizando un cuadro de diálogo en mi aplicación que aparece e interactúa con el usuario. No he trabajado con los diálogos antes, así que sé casi nada acerca de labrar ellos. Este es el código:
public void openDialog() {
@SuppressLint("InflateParams") View view = (LayoutInflater.from(AudioRecorder.this)).inflate(R.layout.audio_name_input, null);
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(AudioRecorder.this);
alertBuilder.setView(view);
final EditText userInput = view.findViewById(R.id.userInput);
alertBuilder.setCancelable(true);
alertBuilder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
inputName = String.valueOf(userInput.getText());
if (!inputName.isEmpty()) {
Toast.makeText(AudioRecorder.this, "Next audio clip will be named... " + inputName, Toast.LENGTH_SHORT).show();
filePathMaking();
} else {
inputName = "recorded_audio";
Toast.makeText(AudioRecorder.this, "Input field empty, next audio clip will be named... " + inputName, Toast.LENGTH_SHORT).show();
}
}
});
alertBuilder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
Dialog dialog = alertBuilder.create();
dialog.show();
}
Podemos estilizar el botón "Guardar" para visualizar el texto en rojo?
Se puede utilizar AlertDialog
como Chrisvin Jem sugirió en su respuesta, pero me gustaría ofrecer otra solución:
Usted sólo puede crear una clase de diálogo personalizado con el fin de dar a su diálogo de un diseño personalizado, el control de todo en una clase separada - Me resulta más limpia y organizada.
Por ejemplo, cree dialogClass:
public class ProgressDialog extends Dialog {
public ProgressDialog(@NonNull Context context) {
super(context);
setContentView(R.layout.progress_dialog); //this is your layout for the dialog
}
}
Y todo lo que necesita hacer es crear instantánea de diálogo y lo llaman así:
ProgressDialog progressDialog = new ProgressDialog(getContext());
progressDialog.show(); // this line shows your dialog
Por eso recomiendo usar esto y no AlertDialog.Builder
:
Usted puede construir su disposición de una manera más rápida con diálogo personalizado.
No es necesario escribir mucho código sólo para añadir puntos de vista cuando se puede tener un diseño personalizado.
Es más fácil (o eso creo) para que usted vea
myCoolDialog.show();
en lugar de 50 líneas de código o más en un solo método.¿Es necesario cambiar nada en cuanto a su aspecto de diálogo y el código? bueno, ir a su clase separada y cambiarlo en lugar de añadir 20 más líneas de código para su actividad.