69 votes

Centre de message dans la boîte de dialogue android

Je veux que le texte du message dans ma boîte de dialogue pour être le centre de l'alignement.

163voto

Chase Points 7520

Bien sûr, vous pouvez toujours définir la gravité de l'original de l'affichage de texte. Cela vous permet de ne pas avoir à vous soucier de mise en forme et le rembourrage.

Par exemple

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
builder.setMessage("Message");
builder.setPositiveButton("OK", null);
AlertDialog dialog = builder.show();

// Must call show() prior to fetching text view
TextView messageView = (TextView)dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.CENTER);

80voto

Zelimir Points 6851

Créez votre propre TextView de l'objet et de la fournir à popup constructeur de Vue:

AlertDialog.Builder popupBuilder = new AlertDialog.Builder(this);
TextView myMsg = new TextView(this);
myMsg.setText("Central");
myMsg.setGravity(Gravity.CENTER_HORIZONTAL);
popupBuilder.setView(myMsg);

Vous pouvez contrôler tous les autres paramètres de texte (style, couleur, taille ...). Pour contrôler les marges, vous pouvez créer par programmation LinearLayout, ensemble LayoutParams, puis mettre TextView en elle.

11voto

n8tr Points 686

Construction de Chase réponse, voici comment centrer aussi le titre. Je pense que c'est le moyen le plus facile. Pourquoi android n'est pas le centre de défaut ou de faire une simple constructeur param est au delà de moi.

AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("My Title");
builder.setMessage("My message");
builder.setPositiveButton("OK", listener);
AlertDialog dialog = builder.show();

// Must call show() prior to fetching views
TextView messageView = (TextView)dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.CENTER);

TextView titleView = (TextView)dialog.findViewById(context.getResources().getIdentifier("alertTitle", "id", "android"));
if (titleView != null) {
    titleView.setGravity(Gravity.CENTER);
}

6voto

sunil Points 3539

nous pouvons l'utiliser comme.

public static void showAlert(Activity activity, String message) {

        TextView title = new TextView(activity);
        // You Can Customise your Title here 
        title.setText("Your Title Here");
        //title.setBackgroundColor(Color.DKGRAY);
        title.setPadding(10, 10, 10, 10);
        title.setGravity(Gravity.CENTER);
        title.setTextColor(Color.WHITE);
        title.setTextSize(20);


        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
        builder.setCustomTitle(title);
        //builder.setIcon(R.drawable.alert_36);

        builder.setMessage(message);

        builder.setCancelable(false);
        builder.setNegativeButton("OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();

            }

        });

        AlertDialog alert = builder.show();
        TextView messageText = (TextView)alert.findViewById(android.R.id.message);
        messageText.setGravity(Gravity.CENTER);
        messageText.setTextColor(Color.RED);

    }

2voto

jennifer Points 2791

essayez ceci dans votre TextView:

android:gravity = "center_vertical|center"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X