如何停止自动触发我的代码时切换按钮改变它的位置按下 AlertDialog 中的取消

How to stop auto triggering my code when switch button change it's position on pressing cancel in AlertDialog

当用户点击开关 btn 时,将弹出警告对话框询问他是否要删除项目。如果他点击是开关 btn 将转到另一侧,如果他点击没有开关应该保持相同的位置。问题是,如果他单击“是”,一切正常,如果他单击“否”,似乎开关 btn 转到另一侧,在他单击“否”后 return 在旧位置并再次触发其中的代码并再次弹出 alertdialog向上,所以它进入一个圆圈,退出该循环的唯一方法是单击是按钮。所以我的问题是如何停止这样做..我希望如果他不点击我的开关 btn 留在旧位置而不是再次自动触发我的代码......我尝试将我的代码放在 onTouchListener,onCickeListener ....

我的代码:`

aSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {

                   if (isChecked){
                       AlertDialog.Builder dialogBuider = new AlertDialog.Builder(MainActivity.this);

                       dialogBuider.setMessage("Delete item?");
                       dialogBuider.setPositiveButton("Yes", (dialog, which) -> {
                           dialog.dismiss();
                       });

                       dialogBuider.setNegativeButton("No", (dialog, id) -> {
                           dialog.cancel();
                       });

                   dialogBuider.setOnCancelListener(dialog -> {
                       aSwitch.setChecked(false);
                   });

                       AlertDialog alertDialog = dialogBuider.create();
                       alertDialog.show();
                   }

                   else {
                       AlertDialog.Builder dialogBuider = new AlertDialog.Builder(MainActivity.this);

                       dialogBuider.setMessage("Delete Item?");
                       dialogBuider.setPositiveButton("Yes", (dialog, which) -> {
                           dialog.dismiss();
                       });

                       dialogBuider.setNegativeButton("No", (dialog, id) -> {
                           dialog.cancel();
                       });

                   dialogBuider.setOnCancelListener(dialog -> {

                       aSwitch.setChecked(true);
                   });

                       AlertDialog alertDialog = dialogBuider.create();
                       alertDialog.show();
                   }
               });`

好吧,我找到了解决方案,如果有人 运行 遇到同样的问题,只需使用

if (!buttonView.isPressed())
            return;

setOnCheckedChangeListener() 里面,这样你就可以检查 btn 开关是否被按下,如果没有按下则重新调整