2012-08-06 55 views
0

10個小時,我試圖添加一個alertdialog到我的應用程序,但沒有成功,我認爲這將是一個愚蠢的問題,但我真的在這個新的,試圖在許多像那些鏈接AlertDialog - Not Working; SDK Android AlertDialog.Builder,但即使這樣我仍然有問題。添加一個AlertDialog - 未定義的構造函數

其實,我每次basicly同樣的問題:

在這裏,我從鏈接複製的代碼,以幫助我:

public void dbFail(){ 
     AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 
     alertDialog.setTitle("Reset..."); 
     alertDialog.setMessage("Are you sure?"); 
     alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       // here you can add functions 
      } 
     }); 
     alertDialog.show(); 
    } 

和這裏的問題:

構造AlertDialog .Builder(ConnectDB¹)未定義。

¹-這是我的上下文的

那麼,什麼纔是我真的需要做的名字嗎?我沒有看到任何人談論實現這個構造函數...我需要在AlertDialog.Builder調用中實現一個方法,描述他應該做什麼?


+0

我認爲這是不夠的 - '新AlertDialog.Builder(myContext);' – Praveenkumar 2012-08-06 14:09:55

回答

1

上下文需要是一個活動。

根據你的錯誤The constructor AlertDialog.Builder(ConnectDB) is undefined.判斷,我猜你試圖在某種數據庫相關的類中顯示AlertDialog。

您需要在您的活動中創建AlertDialog,或者您需要將您的Activity傳遞給ConnectDB類,以便ConnectDB可以使用它來生成對話框。

+0

您清除了我的心,我想關於這個權利,謝謝 – 2012-08-06 14:13:22

+0

真棒,它工作!哈哈哈哈,謝謝你們 – 2012-08-06 14:14:55

1

嘗試改變:

new AlertDialog.Builder(this).create(); 

要這樣:

new AlertDialog.Builder(YourActivityClassName.this).create(); 

確保您提供您的活動的上下文這裏(不應用程序上下文即getApplicationContext())。不要與應用程序上下文活動上下文混淆,因爲它們在初始化對象時都很重要。

0

如果您嘗試顯示來自其他課程的警報對話框,則必須將該活動的一個實例傳遞給其他課程,並調用runOnUiThread方法。

這裏是我如何做到這一點(遊戲作爲活動):

game.runOnUiThread(new Runnable() { 
      public void run() { 

      builder = new AlertDialog.Builder(game); 
      builder.setTitle("Network Error"); 
      builder.setMessage("Please connect to the internet"); 
      builder.setCancelable(false); 
      builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.cancel(); 
        game.finishGame(); 

       } 
      }); 

      initialized = true; 

      } 

     });