在 Android 中创建警报对话框并向对话框(弹出窗口)添加一个按钮以关闭它

Creating Alert Dialog box in Android and add a button to Dialog (popup) to close it

我正在 android 中创建一个关于我们的屏幕作为 popup/dialog。我想在此对话框中添加一个按钮(确定或取消)。我该怎么做?

这是我的布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:id="@+id/popup"
    android:layout_height="wrap_content"
    android:background="#E3C39D"
    android:orientation="vertical"
    android:padding="0dp">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="About Us.."
        android:layout_marginRight="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="16dp"
        android:layout_marginBottom="8dp"
        android:textSize="20dp"
        android:textColor="#ffffff"
        style="@style/TextShadow"/>

    <View
        android:id="@+id/SplitLine_hor1"
        android:layout_width="match_parent"
        android:layout_height= "1dp"
        android:background="#000" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="16dp"
        android:text="Hello ! I want to put a button below with label 'OK' and Click on this OK button the popup should be close. Thank you !" />

</LinearLayout>

以下是对话框的功能

public void AboutUsDialog(){
        final AlertDialog.Builder alert;
        alert = new AlertDialog.Builder(this);
        LayoutInflater inflater = MainActivity.this.getLayoutInflater();
        View dialogView = inflater.inflate(R.layout.activity_about_us, null);
        alert.setView(dialogView);
        alert.show();

        alert.setPositiveButton("OK",null);
        //alert.setInverseBackgroundForced(true);
    }

我正在使用 alert.setPositiveButton("OK",null);alert.setInverseBackgroundForced(true);。但是我没有在对话框中显示任何按钮。

现在,当我触摸屏幕上的任意位置时,对话框会关闭。我只想通过确定按钮关闭弹出窗口。

提前致谢!

输出

你的按钮没有出现,因为它应该是这样的

alert.setPositiveButton("OK",null);
alert.setView(dialogView);
        alert.show();

而不是

alert.setView(dialogView);
        alert.show();
alert.setPositiveButton("OK",null);

参考这个:

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
      alertDialogBuilder.setMessage("Are you sure,You wanted to make decision");

      alertDialogBuilder.setPositiveButton("yes", new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface arg0, int arg1) {
            Toast.makeText(MainActivity.this,"You clicked yes button",Toast.LENGTH_LONG).show();
         }
      });

      alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which) {
            finish();
         }
      });

      AlertDialog alertDialog = alertDialogBuilder.create();
      alertDialog.show();

试试让我知道

下面是我添加按钮的代码。

public void AboutUsDialog() {
        final AlertDialog.Builder alert;
        alert = new AlertDialog.Builder(this);
        LayoutInflater inflater = MainActivity.this.getLayoutInflater();
        View dialogView = inflater.inflate(R.layout.activity_about_us, null);
        alert.setPositiveButton("OK", null);  //This is my Solution to this question(adding OK button)
        alert.setCancelable(false);
        alert.setInverseBackgroundForced(true);
        alert.setView(dialogView);
        alert.show();
        //alert.setInverseBackgroundForced(true);
    }