因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