This question already has answers here:
Center message in android dialog box
                                
                                    (8个答案)
                                
                        
                2年前关闭。
            
        

我已经为我的AlertDialog框创建了一个自定义标题。但是我无法将消息居中。它总是左对齐。

    TextView vehicle_no = (TextView) findViewById(R.id.vehicle_no);
    String ScoreTitle = getResources().getString(R.string.AlertTitle);

    AlertDialog.Builder alrtbuilder = new AlertDialog.Builder(this);
    Context mContext = alrtbuilder.getContext();
    LayoutInflater mLayoutInflater = LayoutInflater.from(mContext);
    View mView = mLayoutInflater.inflate(R.layout.simple_dialog, null);
    TextView mTextView = (TextView) mView.findViewById(R.id.title_text);
    mTextView.setText(ScoreTitle);


AlertDialog框有一个肯定的和一个否定的按钮

    alrtbuilder.setCustomTitle(mView);
    alrtbuilder.setMessage(vehicle_no.getText().toString().toUpperCase()+" "+"?")
               .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    insert_timecard();
                }
            })
            .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    dialogInterface.dismiss();
                }
            }).show;

最佳答案

在布局android:gravity="center"中将ID为TextViewR.id.title_text添加到R.layout.simple_dialog

 <TextView
            android:id="@+id/title_text"
            android:layout_width="match_parent"
            android:gravity="center"
            android:layout_height="wrap_content" />


要居中默认消息TextView,您必须从TextView之后的对话框中获取show()

 alertDialog.show();
            TextView messageView = (TextView)alertDialog.findViewById(android.R.id.message);
            messageView.setGravity(Gravity.CENTER);


我不知道这是否是一个好方法,但是您也可以将自定义视图设置为整个对话框,那么事情就可以轻松处理。

09-26 09:43