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

时间:2016-07-27 17:41:05

标签: android android-studio android-alertdialog android-button

我正在创建一个关于我们屏幕作为android中的弹出/对话框。我想在此对话框中添加一个按钮(OK或CANCEL)。我怎么能这样做?

这是我的布局文件

<?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);。但我没有在对话框中显示任何按钮。

当我触摸屏幕上的任何地方时,现在Dialog会关闭。我想通过OK按钮关闭弹出窗口。

提前致谢!

输出

enter image description here

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

试着让我知道