2013-11-12 4 views
1

В приложении, которое я создаю, у меня есть инструкция «if», где, если две строки сохраняются в определенной строке, появляется AlertDialog. Эти строки останутся неизменными для некоторых пользователей, поэтому при появлении этого параметра AlertDialog появляется всякий раз, когда запускается действие, в котором установлен ALertDialog. Код (я не имею setNegativeButton как еще):Есть ли способ полностью отключить AlertDialog?

private void SetWarning() { 

    AlertDialog.Builder alert = new AlertDialog.Builder(this); 
    alert.setTitle("Warning!"); 
    alert.setMessage(R.string.Warning); 

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
     //No action needed; just close the AlertDialog. 
      } 
     }); 

alert.show(); } 

Вот сегмент моего кода, который делает этот AlertDialog появляются:

 SharedPreferences sharedPreferences = getSharedPreferences("MY_PREF", MODE_PRIVATE); 
     String s = sharedPreferences2.getString("MEM1", ""); 
     String s2 = sharedPreferences2.getString("MEM2", ""); 

    if(s.equals("String1") && s2.equals("String2")) 
     SetWarning(); 

Есть ли способ, чтобы сделать «alert.setNegativeButton» метод, когда пользователь нажимает на него, AlertDialog НИКОГДА не появится снова? Я думаю о том, что каким-то образом каким-то образом реализовала бы другую SavedPreferences, чтобы сохранить выбор пользователей, а затем предотвратит появление AlertDialog снова. Пока не повезло. Я искал, чтобы ничего не найти, кроме тех, кто спрашивает, как отключить кнопки в AlertDialog.

Спасибо!

Новый обновленный код:

 alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      //set sharedpreferences boolean called DONTSHOWAGAIN to true; 
      SharedPreferences sharedPreferences2 = getSharedPreferences("MY_PREF", MODE_PRIVATE); 
      Boolean dontShowAgain = sharedPreferences2.getBoolean("dontShowAgain ", false); 
      SharedPreferences.Editor ed = sharedPreferences2.edit(); 
      ed.putBoolean("dontShowAgain", true); 
      ed.commit(); 
     } 
    }); 

alert.show(); } 

private void StringWarning() { 



     SharedPreferences sharedPreferences2 = getSharedPreferences("MY_PREF", MODE_PRIVATE); 
     String s = sharedPreferences2.getString("MEM1", ""); 
     String s2 = sharedPreferences2.getString("MEM2", ""); 


    if(s.equals("String1") && s2.equals("String2")){ 
     if(!dontShowAgain){ 
      SetWarningExamConflict(); 
     } 
     } 

ответ

0

Все, что вам нужно сделать, это прикрепить "setNegativeButton" и обрабатывать щелчок:

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int whichButton) { 
     //set sharedpreferences boolean called DONTSHOWAGAIN to true; 
    } 
}); 

и затем изменить ваш AlertDialog вызов:

Boolean dontShowAgain = sharedPreferences2.getBoolean("DONTSHOWAGAIN", false); 

if(s.equals("String1") && s2.equals("String2")){ 
    if(!dontShowAgain){ 
     SetWarning(); 
    } 
} 
+0

Большое вам спасибо! На данный момент у меня проблемы с этим. Я определенно не забуду, чтобы попасть в метку «Лучший ответ»! – NewGuyChris

+0

, пожалуйста, посмотрите, что я изменил 'getString' на' getBoolean'. Типо на моей стороне. – ariefbayu

+0

Ах! Спасибо! Он исправил каждую проблему! Время проверить это :) – NewGuyChris

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