2014-03-28 40 views
0

所以在我的Android應用程序,我有一個輔助類,可以使用下面的代碼創建一個對話框:返回從多用對話的Android結果

public void CreateAlert(String title, String message) 
{ 
    AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 

    // Setting Dialog Title 
    alertDialog.setTitle(title); 

    // Setting Dialog Message 
    alertDialog.setMessage(message); 

    // Setting OK Button 
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int which) { } 
    }); 

    // Showing Alert Message 
    alertDialog.show(); 
} 

在我的註冊活動,我有一個的AsyncTask運行特定的任務,隨後它處理布爾變量具有以下功能:

private void Process(boolean Success) 
{ 
    if(Success) 
    {    
     appHelper.CreateAlert("Success!", "Well Done!"); 

     // Progress to the activity 
     startActivity(new Intent(context, Menu.class));    
     getActivity().finish(); 
    } 
    else 
    { 
     appHelper.CreateAlert("Failure!", "Please try again."); 
    } 
} 

但是,你可以從上面的代碼中看到的,我想開始基於一個成功的結果的活動。但是,我需要應用程序等待用戶在進入下一個活動之前單擊對話框上的OK按鈕。

這樣做的最佳方式是什麼?

編輯:我應該注意到這兩個函數是在不同的類中,CreateAlert是在一個名爲AppHelper的類中,其中Process是在Registrar.class中的一個活動。

回答

1

再次檢查中alertDialog的OK按鈕的點擊收聽

// Setting OK Button 
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int which) { 

    if(Success) 
    {    
     // Progress to the activity 
     context.startActivity(new Intent(context, Menu.class));    
     context.getActivity().finish(); 
    } 
    else 
    { 
     // Don't do anything 
    } 
    }); 

和更新的布爾success狀態的Process像下面

private void Process(boolean Success) 
{ 
    if(Success) 
    {    
     appHelper.CreateAlert("Success!", "Well Done!"); 

    } 
    else 
    { 
     appHelper.CreateAlert("Failure!", "Please try again."); 
    } 
} 
+0

請看看我的編輯:) – user2990037

+0

@ user2990037檢查更新回答,您需要傳遞alertdialog類中的活動上下文以啓動新的活動。 –

+0

對不起,我不認爲這種解決方案將工作:(無效進程是在我的主類,它需要能夠找出什麼時候確定按鈕(註冊在應用程序類的監聽器)已被按下。 – user2990037