使用setTitle方法无法在自定义对话框上将文本视图设置为标题

时间:2018-07-28 23:33:18

标签: android android-studio customdialog

我创建了一个自定义对话框,

Dialog dialog = new Dialog(loginPage.this);

然后我创建了一个文本视图以用作该对话框的标题:

TextView title = new TextView(this);
title.setText("Custom Centered Title");
title.setGravity(Gravity.CENTER);

但是由于某些原因,即使Dialog类具有setTitle(@StringRes int titleId)方法,该行也会引发错误。

dialog.setTitle(title.getId());

我错过了什么吗? :/

更新:

找出错误原因。 但是仍然无法在对话框上将文本视图设置为标题。谁能指出我正确的方向?

1 个答案:

答案 0 :(得分:1)

dialog.setTitle(title.getId());只是从您的字符串资源中获取文本并将其设置为对话框标题,您应该使用String res id或String!

如果要在对话框中使用自定义视图,请按照以下步骤操作:

1-在布局文件夹中创建对话框布局,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dp"
    android:layout_height="200dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp" />

    <TextView
        android:id="@+id/message"
        android:layout_width="match_parent"

        android:layout_height="wrap_content"
        android:textSize="16sp" />

   </LinearLayout>

2-创建对话框并禁用默认的titleBar:

   Dialog dialog = new Dialog(MainActivity.this);

   dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

3-在对话框中设置布局ID并从布局中获取视图,然后可以对其进行初始化:

dialog.setContentView(R.layout.my_dialog);

TextView title = dialog.findViewById(R.id.title);

TextView message = dialog.findViewById(R.id.message);

title.setText("Hello");

message.setText("Good luck");

最后,您的对话框如下所示:

enter image description here