Intereting Posts

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

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

Solutions Collecting From Web of "Android: как выровнять сообщение в alertDialog?"

попробуй это

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

Показать этот диалог

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

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

  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 (), вы получите исключение с нулевым указателем.

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

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

}

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

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

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

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

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

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

Этот пользовательский диалог alart

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

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

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