android对话框中的中心消息

Siv*_*a K 67 java android

我希望对话框中的消息文本居中对齐.

Cha*_*ase 162

当然,您始终可以设置原始文本视图的重力.这使您不必担心格式化和填充.

例如

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);
Run Code Online (Sandbox Code Playgroud)

  • 对于那些因此而获得null的人.仔细阅读答案._必须在获取文本视图之前调用show() (5认同)

Zel*_*mir 77

创建自己的TextView对象,然后将其作为View提供给弹出构建器:

AlertDialog.Builder popupBuilder = new AlertDialog.Builder(this);
TextView myMsg = new TextView(this);
myMsg.setText("Central");
myMsg.setGravity(Gravity.CENTER_HORIZONTAL);
popupBuilder.setView(myMsg);
Run Code Online (Sandbox Code Playgroud)

您可以控制所有其他文本参数(样式,颜色,大小......).要控制边距,可以以编程方式创建LinearLayout,设置LayoutParams,然后将TextView放入其中.


n8t*_*8tr 11

以Chase的答案为基础,这里也是如何将标题集中在一起.我认为这是最简单的方法.为什么android不默认居中或者使它成为一个简单的构造函数参数超出我的范围.

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);
}
Run Code Online (Sandbox Code Playgroud)


Sun*_*mar 6

我们可以像使用一样.

public static void showAlert(Activity activity, String message) {
  TextView title = new TextView(activity);

  title.setText("Your Title Here");
  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.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);
}
Run Code Online (Sandbox Code Playgroud)