0

タッチで状態を切り替えるチェックボックスがあります。タッチの状態スイッチを無視する方法を知りたいです。チェックボックスにonClickListenerが接続されており、その内部で「はい」または「いいえ」ボタンを使用して状態を変更しています。

        if(sog.isChecked()){
                sog.setChecked(false);
        } else {
                sog.setChecked(true);
        }

編集:チェックボックスをタッチするとチェックボックスが切り替わり、[はい]ボタンの状態も変わります。

編集2:チェックボックスが単独で行うのではなく、ダイアログの状態を変更したい。

編集3:

        sog.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            showDialog(3);

        }
    });

builder.setTitle("Checkbox")
        .setMessage(
                "Are you sure you want to switch checkbox?")
                .setPositiveButton("Yes",
                        new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int id) {
                        if(sog.isChecked()){
                            sog.setChecked(false);
                        } else {
                            sog.setChecked(true);
                            setTotalTime();
                        }
                    }
                })
                .setNegativeButton("No",
                        new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,
                            int id) {
                        dialog.cancel();
                    }
                });
        AlertDialog alert = builder.create();
        return alert;
4

1 に答える 1

1

オフ/オンから変更する際にコンフォメーションを追加したいだけです。

を実装し、 viaOnCheckedChangeListenerに登録します。で、の状態が追加の確認が必要な状態である場合は、そのままにしてダイアログをポップします。ユーザーが変更を加えたくないことを示すダイアログのボタンをタップした場合は、のチェック状態を手動で以前の値に戻します。CheckBoxsetOnCheckedChangeListener()onCheckedChanged()CheckBoxCheckBoxCheckBox

そうは言っても、私はWaza_Beのコメントに同意します。私は「確認ダイアログをすぐにポップする」種類のシナリオのファンではありませんが、必要な場合もあります。このUIの一部として他の種類の確認ステップ(たとえば、「保存」アクションバーアイテム)があり、その時点で確認ダイアログを表示したい場合は、IMHOの方が適しています。

于 2013-02-22T18:35:14.907 に答える