2015-10-12 3 views
0

Мне нужна помощь!Не закрывайте AlertDialog после нажатия кнопки

Я разрабатываю приложение для Android и столкнулся с проблемой. У меня есть AlertDialog, который содержит две кнопки (положительные и отрицательные). Когда нажимается кнопка, запускается какой-то код, диалог закрывается.

dialog.setNegativeButton("button name", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // some code 
     } 
    }); 

Но это не то, что я хочу. Когда пользователи нажимают на отрицательную кнопку, я хочу, чтобы какой-то код запускался, а затем диалог НЕ ДОЛЖЕН быть закрыт.

dialog.setNegativeButton("button name", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // some code 
      // code to prevent the dialog from being closed ? 
     } 
    }); 

Есть ли что-нибудь, что я могу сделать, чтобы предотвратить закрытие диалогового окна при нажатии на положительную или отрицательную кнопку?

Я попытался с помощью этого кода:

dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(false); 

Но это не работает, потому что теперь пользователь не может нажать на кнопку.

КСТАТИ Я разрабатываю для минимальной версии SDk от 16

Спасибо за помощь!

+0

Создайте свой собственный диалог –

+0

в вашем коде также содержится 'dialog.dismiss()'? –

+0

Возможный дубликат http://stackoverflow.com/questions/4016313/how-to-keep-an-alertdialog-open-after-button-onclick-is-fired – stinepike

ответ

0

Если код в OnClick содержит dialog.dismiss(), то только диалог будет свернут

0
String Strmessage="message"; 
      final AlertDialog.Builder alt_bld = new AlertDialog.Builder(SplashActivity.this); 
      alt_bld.setMessage(Strmessage); 
      alt_bld.setCancelable(true); 
      alt_bld.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
        dialog.dismiss(); 
       } 
      }) 
      .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        dialog.dismiss(); 
       } 
      }); 
      AlertDialog alert = alt_bld.create();   
      alt_bld.setMessage(Strmessage); 
      alert.show(); 

     } 
0

Спасибо за предложения. Я сделал специальный диалог, и теперь он работает так, как я хотел.

Смежные вопросы