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

问题描述

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

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

我错过了什么吗?:/

更新:

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

标签: androidandroid-studiocustomdialog

解决方案


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-创建您的对话框并禁用默认标题栏:

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

最后你的对话框看起来像这样:

在此处输入图像描述


推荐阅读