Подтвердить что ты не робот

Android: как выровнять сообщение в alertDialog?

Мне нужно выровнять текст по середине в android alertdialog. но я не могу найти способ... кто-нибудь знает, как это сделать?

4b9b3361

Ответ 1

попробуйте это

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("My Title");
builder.setMessage("your message");
builder.setPositiveButton("OK", null);
AlertDialog dialog = builder.show();
TextView messageText = (TextView)dialog.findViewById(android.R.id.message);
messageText.setGravity(Gravity.CENTER);
dialog.show();

show this dialog

Ответ 2

Я знаю, что эта ветка устарела, но может помочь некоторым людям: D

TextView title = new TextView(this);
title.setText("Client details not saved!");
title.setPadding(10, 10, 10, 10);
title.setGravity(Gravity.CENTER);
// title.setTextColor(getResources().getColor(R.color.greenBG));
title.setTextSize(23);

TextView msg = new TextView(this);
msg.setText("You're going to lose all the information if you continue!");
msg.setPadding(10, 10, 10, 10);
msg.setGravity(Gravity.CENTER);
msg.setTextSize(18);

DialogInterface.OnClickListener onClick = new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int which) {
        if (which == DialogInterface.BUTTON_POSITIVE) {
            finish();
        }
    }

};

Builder builder = new AlertDialog.Builder(this);
builder.setCustomTitle(title);
builder.setView(msg);
builder.setCancelable(true);
builder.setPositiveButton("Yes", onClick);
builder.setNegativeButton("No", onClick);

AlertDialog dialog = builder.create();
dialog.show();

Ответ 3

Вы можете использовать свой собственный макет для макета диалогового окна оповещения. Чтобы выровнять центр сообщений макета диалогового окна по умолчанию, вы можете выполнить

        AlertDialog alertDialog;
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setMessage("hello world");
        alertDialog = builder.show();
        TextView messageText = (TextView) alertDialog.findViewById(android.R.id.message);
        messageText.setGravity(Gravity.CENTER);

Будьте осторожны, если вы установите messageText с помощью findViewById перед вызовом builder.show(), вы получите исключение с нулевым указателем.

Ответ 4

Просто используйте этот метод, и заголовок вашего диалога и сообщение появятся в центре:

public static void openDialog (контекстный контекст, сообщение String) {

TextView title = new TextView(context);
// You Can Customise your Title here
title.setText("Information Message");
title.setBackgroundColor(Color.BLACK);
title.setPadding(10, 15, 15, 10);
title.setGravity(Gravity.CENTER);
title.setTextColor(Color.WHITE);
title.setTextSize(22);

AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setCustomTitle(title);
alertDialog.setMessage(message);

alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {

    }
});
alertDialog.show();

// You Can Customise your Message here
TextView messageView = (TextView) alertDialog
        .findViewById(android.R.id.message);
messageView.setGravity(Gravity.CENTER);

}

Ответ 5

Попросите TextView заполнить родительский элемент и придать ему центр тяжести.

<TextView ... android:layout_width="fill_parent" android:gravity="center" />

Ответ 6

Вам нужно будет использовать один из конструкторов, предоставленных для AlertDialog на Android, и при создании.

AlertDialog (контекст контекста, тема int) Создайте AlertDialog, который использует явную тему.

Эта ссылка поможет вам. Поскольку вы хотите, чтобы текст был центрирован, вам нужно было бы указать атрибут тяжести, значение "center" .

Ответ 7

Лучший способ - создать пользовательский диалог.

This Custom alart Dialog

view_dialog_box.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" 
android:background="#A9E2F3">

<TextView
    android:id="@+id/txtDiaTitle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Connection Alart"
    android:textColor="@color/Black"
    android:textStyle="bold"
    android:gravity="center"
    android:padding="5dp"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<View
    android:layout_width="match_parent"
    android:layout_height="1dip"
    android:background="#2E9AFE"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    />

<TextView
    android:id="@+id/txtDiaMsg"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:padding="5dp"
    android:text="No Internet Connection"
    android:textColor="@color/Black" />

<Button
    android:id="@+id/btnOk"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="OK"
    android:textColor="@color/Black"
    android:textStyle="bold"
    android:padding="5dp" 
    android:layout_margin="5dp"
    android:background="@color/White"/>

Затем он используется в java файле

final Dialog dialog = new Dialog(context);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialog.setContentView(R.layout.view_dialog_box);

    // set the custom dialog components - text and button
    TextView text = (TextView) dialog.findViewById(R.id.txtDiaTitle);
    TextView image = (TextView) dialog.findViewById(R.id.txtDiaMsg);

    Button dialogButton = (Button) dialog.findViewById(R.id.btnOk);
    // if button is clicked, close the custom dialog
    dialogButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            dialog.dismiss();

        }
    }); 
    dialog.show();

Ответ 8

Попробуйте это - он выполнит трюк.

AlertDialog.Builder completeDialog = new AlertDialog.Builder(Main.this);

TextView resultMessage = new TextView(Main.this);
resultMessage.setTextSize(22);
resultMessage.setText("Upload completed!");
resultMessage.setGravity(Gravity.CENTER);
completeDialog.setView(resultMessage);

completeDialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {

    @SuppressLint("DefaultLocale")
    public void onClick(DialogInterface dialog, int whichButton) {
        dialog.dismiss();               
    }

});

completeDialog.show();