【问题标题】:Creating Alert Dialog box in Android and add a button to Dialog (popup) to close it在Android中创建警报对话框并在对话框(弹出)中添加一个按钮以关闭它
【发布时间】:2016-07-27 17:41:04
【问题描述】:

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

这是我的布局文件

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

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

提前致谢!

输出

【问题讨论】:

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


    【解决方案1】:

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

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

    试着告诉我

    【讨论】:

    • 你试过上面那个吗
    • @AbhishekTandon 设置 dialog.setCancelable(false) 以禁用在单击屏幕时关闭对话框。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多