如何使用android studio添加在对话框中动态显示的按钮

如何使用android studio添加在对话框中动态显示的按钮,android,dialog,Android,Dialog,我有一个显示错误消息的对话框, 我知道我可以接受错误信息,让它在代码中不可见, 但是,对话框仍然会在其中保存空间,并且只会显示为空白 我希望添加错误消息,因此如果没有显示错误消息,对话框将相应调整大小 我该怎么做 这是我的对话> <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ap

我有一个显示错误消息的对话框, 我知道我可以接受错误信息,让它在代码中不可见, 但是,对话框仍然会在其中保存空间,并且只会显示为空白

我希望添加错误消息,因此如果没有显示错误消息,对话框将相应调整大小

我该怎么做

这是我的对话>

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <android.support.design.widget.TextInputLayout
        android:id="@+id/textContainer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:counterEnabled="true"
        app:counterMaxLength="14">

        <EditText
            android:id="@+id/barcode_activity_input_editText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:ems="10"
            android:hint="Enter Serial Number"
            android:inputType="number"
            android:maxLength="14" />
    </android.support.design.widget.TextInputLayout>

    <Button
        android:id="@+id/barcode_activity_button_cancel"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/barcode_activity_manual_input_check_box"
        android:text="Cancel" />

    <Button
        android:id="@+id/barcode_activity_button_ok"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/barcode_activity_manual_input_check_box"
        android:layout_toEndOf="@+id/barcode_activity_button_cancel"
        android:text="Ok" />

    <TextView
        android:id="@+id/barcode_activity_text_view_warning"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textContainer"
        android:layout_toRightOf="@+id/barcode_activity_image_view_warning"
        android:paddingTop="5dp"
        android:text="Serial doesn't match Workorder"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#f00000"
        android:textSize="13dp" />

    <ImageView
        android:id="@+id/barcode_activity_image_view_warning"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_below="@+id/textContainer"
        android:background="@drawable/warning" />

    <CheckBox
        android:id="@+id/barcode_activity_manual_input_check_box"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/barcode_activity_image_view_warning"
        android:text="Allow Serial In Workorder"
        android:textSize="13dp" />

</RelativeLayout>

您可以通过在Java文件中创建按钮来动态添加按钮

将此XML添加到类似dialog.addView(…)的对话框中

然后根据以下值动态创建按钮

for(){

创建按钮并添加到上面的布局

布局。添加视图(按钮)

}

希望对您有所帮助。

有关删除空白。。。 使用setVisibility()方法的“View.GONE”属性,而不是“TextView.INVISIBLE”

设置以下隐藏视图的代码

warningTextView.setVisibility(View.GONE);
warningImageView.setVisibility(View.GONE);
warningCheckBox.setVisibility(View.GONE);
对于可见视图,只需用户

warningTextView.setVisibility(View.VISIBLE);
warningImageView.setVisibility(View.VISIBLE);
warningCheckBox.setVisibility(View.VISIBLE);

哇,天才!!thnx!非常欢迎…(感谢@user2560571)顺便问一下@Jaldeep Asodariya为什么我在这个问题上得到-分?我已经投票支持你的评论“哇,天才!!thnx!”,因为这对我帮助你非常有用,也鼓励我更多地分享知识。
warningTextView.setVisibility(View.VISIBLE);
warningImageView.setVisibility(View.VISIBLE);
warningCheckBox.setVisibility(View.VISIBLE);