2010-10-19 2 views

ответ

1

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

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

Как сделать то же самое с AlertDialog? –

1

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

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

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

77

попробовать это

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

+0

Я не мог понять, как вы написали код – swiftBoy

+8

Может быть AlertDialog dialog = builder.create(); вместо диалога AlertDialog = builder.show(); и dialog.show(); следует переместить на 2 строки выше – goRGon

21

Я знаю, эта нить старый, но может помочь некоторым людям: 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(); 
+0

. Можете ли вы написать, как ваш код полезен и отличается от других ответов. Это поможет людям прочитать ваш ответ и определить, попробовать ли это или нет (и может помочь им учиться) – Patrick

+0

Как вы добавляете текстовый текст 'title' тоже в' builder'? –

0

Попробуйте - это будет делать трюк.

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(); 
1

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

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(); 
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

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

государственной статической силы OpenDialog (Context контекст, строка сообщения) {

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); 

}

Смежные вопросы