Visual personalización de un botón de diálogo

Greg:

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?

Tamir Abutbul:

Se puede utilizar AlertDialogcomo 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.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=317942&siteId=1
Recomendado
Clasificación