Проблема Android с диалоговым окном

Я отобразил две кнопки: «Настройка GPS» и «Отмена», и я хочу, чтобы при нажатии кнопки «Отмена» отображалось другое диалоговое окно с кнопкой «ОК». что делать в этом случае, я использую следующий код..

 if (!isGPSEnabled) {
        // no GPS provider is enabled
        // creating alertdialog
        AlertDialog.Builder builder = new AlertDialog.Builder(c);

        builder.setTitle("Settings");
        builder.setMessage("Enable GPS for the Application");

        builder.setPositiveButton("GPS Setting",

        new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                startActivity(new Intent(
                        android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));

                dialog.dismiss();
            }

        });

        builder.setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        new AlertDialog.Builder(MainActivity.this)
                                .setTitle("How to use Application")
                                .setMessage(
                                        "You must enable the GPS in order to use this application. Press Activate and then press Power Button twice in order to send the alert message to the selected contacts")
                                .setNeutralButton(
                                        "OK",
                                        new DialogInterface.OnClickListener() {

                                            @Override
                                            public void onClick(
                                                    DialogInterface dialog,
                                                    int which) {
                                                // do something

                                            /*  Intent inmainact = new Intent(
                                                        getApplicationContext(),
                                                        MainActivity.class);
                                                startActivity(inmainact);   */
                                                 dialog.cancel();

                                            }
                                        }).show();
                        dialog.dismiss();

                    }
                });

        builder.show();

person bhanu kaushik    schedule 27.01.2014    source источник


Ответы (3)


Добавьте следующий код, чтобы нажать кнопку «Отмена».

new AlertDialog.Builder(MainActivity.this)
        .setTitle("")
        .setMessage("")
        .setNeutralButton("OK", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // do something

            }
        }).show();
person Asha Soman    schedule 27.01.2014
comment
ты такой спаситель жизни дорогой. большое тебе спасибо . Еще кое-что. Когда я нажал «ОК», я хочу, чтобы приложение вернуло меня к основной активности. Для этого я использую метод onClick кнопки OK. Но его провал. Я делаю это неправильно Что еще мне нужно сделать, чтобы вернуться к моей основной деятельности? - person bhanu kaushik; 27.01.2014
comment
bhanu kaushik, из какого действия вы показываете эти диалоги? Что происходит при нажатии кнопки «ОК» в вашем случае? - person Asha Soman; 28.01.2014
comment
здесь я снова отредактировал пост, и когда я нажимаю «ОК», он снова показывает мне предыдущий диалог, то есть диалог с кнопками «Настройка GPS» и «Отмена». - person bhanu kaushik; 28.01.2014
comment
Попробуйте это, добавьте MainActivity.this.finish(); при запуске этого нового действия и внутри кнопки «ОК» нажмите dialog.cancel(); - person Asha Soman; 28.01.2014
comment
давайте продолжим это обсуждение в чате - person Asha Soman; 28.01.2014

Проверьте этот код:

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

                            builder.setTitle("Settings");
                            builder.setMessage("Enable GPS for the Application");

                            builder.setPositiveButton("GPS Settings",

                            new DialogInterface.OnClickListener() {

                                public void onClick(DialogInterface dialog, int which) {
                                    //do Something
                                }

                            });

                            builder.setNegativeButton("Cancel",
                                    new DialogInterface.OnClickListener() {

                                        @Override
                                        public void onClick(DialogInterface dialog,
                                                int which) {
                                              dialog.dismiss();
                                            AlertDialog.Builder builder2 = new AlertDialog.Builder(MainActivity.this);
                                            builder2.setMessage("Look at this dialog!")
                                                   .setCancelable(false)
                                                   .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                                       public void onClick(DialogInterface dialog, int id) {
                                                            //do things
                                                            Toast.makeText(getApplicationContext(), 
                                                                    "OnClickListener : " + "OK Clicked",
                                                                    Toast.LENGTH_SHORT).show();
dialog.dismiss();
                                                       }
                                                   });
                                            AlertDialog alert2 = builder2.create();
                                            alert2.show();

                                        }
                                    });

                            AlertDialog alert = builder.create();
                            alert.show();
person Amritesh    schedule 27.01.2014
comment
он работает абсолютно нормально. Но я хочу спросить, когда нажал «ОК», я хочу, чтобы приложение вернуло меня к основной активности. Для этого я использую метод onClick кнопки OK. Но его провал. Я делаю это неправильно Что еще мне нужно сделать, чтобы вернуться к моей основной деятельности? - person bhanu kaushik; 27.01.2014
comment
добавить диалог.отклонить(); в методе onclick кнопки OK, где отображается Toast. - person Amritesh; 27.01.2014

person    schedule
comment
Обратитесь к этому, это может помочь вам в решении вашей проблемы stackoverflow.com/questions/15020878/ - person Shailendra Madda; 27.01.2014
comment
@AnilBhatiya, мои извинения. но это не решение :( - person bhanu kaushik; 27.01.2014