1

オプションと2つのボタンを備えたアラートダイアログがあります。2 番目のボタンを押したときにダイアログを閉じたくありません (サウンドを停止するだけです)。

ダイアログを開いたままにするプロパティはありますか?

どうもありがとう!

コード:

        public void creaDialogTo(){

            final String[] tonos = {"thinks.mp3", "life.mp3", "war.mp3"};

            AlertDialog.Builder builder = new AlertDialog.Builder(this);

            builder.setTitle("Select");
            builder.setCancelable(false);
            builder.setSingleChoiceItems(tones, -1,new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int item) {
                    tone=tones[item];
                    sound1 =new SoundManager(getApplicationContext());
                    sound1.loadSound(tones[item]);


                }
            });
            builder.setPositiveButton("Confirm",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            pref.setTone(tone);

                            sound1.stopsound();

                        }
                    });
            builder.setNeutralButton("Stop sound",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                        sound1.stopsound();

                        }
                    });
            AlertDialog alert = builder.create();
            alert.show(); 

    }
4

1 に答える 1

5

おそらく、AlertDialogが表示されており、デフォルトのボタンはポジティブとネガティブです。代わりに、ダイアログを作成し、2つのボタンを使用して、このダイアログのcontentViewとしてレイアウトを手動で設定できます。ここでは、ボタンクリックイベントのすべての定義を定義する必要があり、デフォルトのボタンは発生しません。したがって、ボタンクリックでダイアログを閉じない場合は、ボタンクリックでdialog.dismiss()を呼び出さないでください。

編集:ニュートラルボタンはデフォルトでダイアログを閉じ、ネガティブボタンとして変更してみてください。それでも機能しない場合は、上記の解決策を適用してください。

于 2012-09-11T04:59:48.637 に答える