android开发分享点击确认按钮后不关闭diaog,必须手动设置关闭dialog

因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/a

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

Step 1 :activity_main.xml布局如下:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"     xmlns:app="https://schemas.android.com/apk/res-auto"     xmlns:tools="https://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();                      }                 });              }         });      }  } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/addevelopment/894418.html

(0)
上一篇 2021年10月21日
下一篇 2021年10月21日

精彩推荐