2015-06-09 24 views
0

我想弄清楚當我按下負/正按鈕時肯定禁用AlertDialog框。我目前的應用程序工作點擊屏幕,我希望我的應用程序在第一次點擊時顯示AlertDialog框。這個盒子說「注意,一些名字是發明的!」和按鈕是「好!」(正面按鈕)和「不要提醒我」(負面按鈕)。在這兩種情況下,我希望應用程序在每次點擊時都停止顯示Box,因爲這顯然令人沮喪,並且無法在每次點按時顯示消息(考慮用戶每5秒會點擊1次或2次)。所以我想弄清楚如何在第一次點擊後禁用它。看不到如何禁用AlertDialog框

現在,這是我寫的

public void tap(View view) { 

    final AlertDialog.Builder tapAlert = new AlertDialog.Builder(this); 
    tapAlert.setMessage("The names are mostly invented!"); 
    tapAlert.setPositiveButton("Ok!", new DialogInterface.OnClickListener() 
    { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

      dialog.dismiss(); 

     } 
    }); 
    tapAlert.setNegativeButton("Don't remind it to me", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 


      dialog.cancel(); 

     } 

    }); 
    tapAlert.setOnCancelListener(new DialogInterface.OnCancelListener() { 
     @Override 
     public void onCancel(DialogInterface dialog) { 
      // do nothing, just allow dialog to close 
      // this happens on back button getting hit 
     } 
    }); 
    tapAlert.setTitle("Attention!"); 
    tapAlert.create(); 
    tapAlert.show(); 
+0

java!= javascript ftfy – codeMagic

回答

0

在類級別只需創建一個`布爾變量

boolean firstTap = true; 

然後改變,它已經顯示一次

public void tap(View view) { 

    final AlertDialog.Builder tapAlert = new AlertDialog.Builder(this); 
    ... 
    if (firstTap) { 
     tapAlert.show(); 
     firstTap = false; 
    } 

後如果您希望每次運行應用程序時都顯示第一次,這將起作用。如果您只有有史以來希望它顯示在第一個水龍頭保存布爾在SharedPreferences並檢查,當活動啓動。

甚至更​​好將在調用tap()方法之前檢查該變量。當firstTapfalse時,請勿撥打電話。

+0

剛剛嘗試過,運行順利,謝謝;)只是一個問題:如果我想讓AlertDialog在用戶每次按下「Ok!如果用戶按下「不要提醒我」!我應該使用SharedPreferences嗎? – Thozzmass

+0

是的,SharedPreferences。只要保存一個布爾值,如果它是假的,不要顯示它 – codeMagic

+0

對不起,如果我是這樣不熟練的,你能給我一個代碼示例嗎?我的意思是,我試圖瞭解如何通過SharedPreferences保存它,但我在尋找正確的指南時遇到了一些問題:) – Thozzmass