Android AlertDialog中心标题和列表项

时间:2018-01-10 13:28:37

标签: java android listview alertdialog title

我有一个好主意,可以从下面的链接中找到AlertDialog消息的文本:

http://www.coderzheaven.com/2012/01/30/central-aligning-the-default-message-text-in-alertdialog-in-android/#comment-1802653

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("My Title");
builder.setMessage("CoderzHeavennHeaven of all working codes.");
builder.setPositiveButton("OK", null);
AlertDialog dialog = builder.show();

TextView messageText = (TextView)dialog.findViewById(android.R.id.message);
messageText.setGravity(Gravity.CENTER);

这对于消息文本非常有效。

如果我为标题尝试相同,它会给我null。 我如何为标题做什么呢?它为什么做什么?

TextView messageText = (TextView)dialog.findViewById(android.R.id.title);
messageText.setGravity(Gravity.CENTER);

如果我添加列表项并对列表项尝试相同,它会给我null。 如何为列表项做同样的事情并为它做什么?

String[] listAryVar = {"Edit", "Renam", Delete"};

builder.setItems(listAryVar, new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface DlgPsgVar, int which)
        {
            // |==| |* CodTdo *|
        }
    })

ListView messageText = (ListView)dialog.findViewById(android.R.id.list);
messageText.getCount());

尝试2:如果我执行如下操作,代码会运行,但文本仍然保持对齐状态。

ListView dialogListView = dialog.getListView();

for(int i=0; i < dialogListView.getCount(); i++)
{
    TextView textView = (TextView)dialogListView.getAdapter().getView(i, null, dialogListView);;
    textView.setGravity(Gravity.CENTER);
}

我知道我们使用自定义视图并设置该视图。但我觉得我们甚至可以改变内置视图。因为在android中我们可以做任何事情。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用自定义提醒对话框

<强> custom_alert_dialog.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff"
android:padding="5dp">


<TextView
    android:id="@+id/title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="this is title"
    android:gravity="center_horizontal"
    android:textColor="#000"
    android:textStyle="bold" />

<TextView
    android:id="@+id/message"
    android:layout_below="@+id/title"
    android:layout_marginTop="20dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="this is message"
    android:gravity="center_horizontal"
    android:textColor="#000"
    android:textStyle="bold" />
 </RelativeLayout>

然后在您的活动中

 AlertDialog.Builder customAlert = new AlertDialog.Builder(MainActivity.this);
    View viewDialog = LayoutInflater.from(MainActivity.this).inflate(R.layout.custom_alert_dialog, null);
    customAlert.setView(viewDialog);

    TextView title = (TextView) viewDialog.findViewById(R.id.title);
TextView message = (TextView) viewDialog.findViewById(R.id.message);


title.setText("this is title");
message.setText("this is message");

    customAlert.create();
    customAlert.show();

你会得到这样的东西

enter image description here