如何根据对话框中选定的对接自定义开关按钮



我想根据对话框按下屁股打开或关闭开关对接。但是当我按是的时,它可以正常工作,但是当我按否时它不起作用,这意味着swith buttion and对话框不是根据对话框中选定的选项的同步。在这里是我的代码

s.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, final boolean isChecked) {
 final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(DisplayBasicData.this);
            alertDialogBuilder.setMessage("make decision");
                    alertDialogBuilder.setPositiveButton("yes",
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    if(isChecked){
                                        s.setChecked(true);
                                    }
                                    dialog.cancel();
                                }
                            });
            alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Log.d("ygyu",""+isChecked);
                    if(!isChecked ||isChecked){
                        s.setChecked(false);
                        dialog.dismiss();}
                }
            });
            AlertDialog alertDialog = alertDialogBuilder.create();
            alertDialog.show();
        }

我已经对您的代码进行了一些编辑,请查看:

final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(DisplayBasicData.this);
            alertDialogBuilder.setMessage("make decision");
                    alertDialogBuilder.setPositiveButton("yes",
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                        s.setChecked(true);

                                    dialog.cancel();
                                }
                            });
            alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Log.d("ygyu",""+isChecked);
                        s.setChecked(false);
                        dialog.dismiss();

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

使用

 final Switch switch1 =(Switch) findViewById(R.id.switch1);
     switch1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);
            alertDialogBuilder.setMessage("make decision");
            alertDialogBuilder.setPositiveButton("yes",
                    new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            if((!switch1.isChecked()) ||(switch1.isChecked())) {
                                switch1.setChecked(true);
                            }
                            dialog.cancel();
                        }
                    });
            alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    if ((!switch1.isChecked()) || (switch1.isChecked())) {
                        switch1.setChecked(false);
                    }
                    dialog.dismiss();
                }
            });
            AlertDialog alertDialog = alertDialogBuilder.create();
            alertDialog.show();
        }
    });

最新更新