当前位置: 移动技术网 > 移动技术>移动开发>Android > 点击确认按钮后不关闭diaog,必须手动设置关闭dialog

点击确认按钮后不关闭diaog,必须手动设置关闭dialog

2020年08月10日  | 移动技术网移动技术  | 我要评论

因dialog点击其按钮之后,都会关闭dialog需要,有时我们需求需要满足某种条件之后才能关闭,就可以用如下写法实现:

Step 1 :activity_main.xml布局如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="测试"/>

</LinearLayout>

Step 2:MainActivity代码如下:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button bt=findViewById(R.id.test);

        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                final AlertDialog alertDialog=new AlertDialog.Builder(MainActivity.this)
                        .setTitle("点击确认按钮(PositiveButton)不会关闭dialog,必须设置用dismiss()关闭")
                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
                            }
                        })
                        .setPositiveButton("确认",null)//把第二个参数设置为null
                        .create();
                alertDialog.show();//必须show后才能alertDialog.getButton

                //获取点击确认按钮并监听
                alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        if (!(2>3)){//不符合要求,不会关闭dialog
                            return;
                        }
                        alertDialog.dismiss();

                    }
                });

            }
        });

    }

}

本文地址:https://blog.csdn.net/weixin_44619313/article/details/107863707

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网