2013-11-04 25 views
0

我得到了一個問題我現在做了一個警報對話類,如果有人按下Ok它應該回到上一個活動,但我不知道如何做到這一點,因爲當我放入finsih();它給了我一個錯誤這裏是我的代碼:轉到上一個活動在非活動類

package com.laurenswuyts.find.it; 

import com.laurenswuyts.find.it.R; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.Intent; 



public class AlertDialogManager { 
    /** 
    * Function to display simple Alert Dialog 
    * @param context - application context 
    * @param title - alert dialog title 
    * @param message - alert message 
    * @param status - success/failure (used to set icon) 
    *    - pass null if you don't want icon 
    * */ 
    @SuppressWarnings("deprecation") 
    public void showAlertDialog(Context context, String title, String message, 
      Boolean status) { 
     AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 

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

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

     if(status != null) 
      // Setting alert dialog icon 
      alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail); 

     // Setting OK Button 
     alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 

      public void onClick(final DialogInterface dialog, final int which) { 

      } 





     }); 

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

在公共無效的onClick我試着輸入完成();但那沒有奏效。

任何人都可以幫助我嗎?提前致謝!

Regards,

+0

嘗試dialog.dismiss(); – njzk2

+0

@aegean讓我意識到你的問題並不清楚 - 你想要以前的活動,還是僅僅是啓動對話框的活動? (即隱藏對話框) –

+0

你沒有解決這個問題。 Adam和我的答案都是我想要的。將其中的一個標記爲答案,並在解決問題時關閉此問題。 – Devrim

回答

1

您應該向您的經理添加一個屬性;

Context context; 

用你的showAlertDialog()方法初始化它。

在您的點擊下;

((Activity) context).finish(); 
+1

請確保你沒有通過applicationContext!必須傳遞活動上下文 – mario

0

你可以從調用活動通過點擊監聽:

DialogInterface.OnClickListener clickListener = new DialogInterface.OnClickListener() { 
     public void onClick(final DialogInterface dialog, final int which) { 
      finish(); 
     } 
    }); 
AlertDialogManager manager = new AlertDialogManager(); 
manager.showAlertDialog(this, title, message, status, clickListener); 

然後在你的AlertDialogManager,更改方法是這樣的:

public void showAlertDialog(Context context, String title, String message, 
     Boolean status, DialogInterface.OnClickListener clickListener) { 
    AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 

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

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

    if(status != null) 
     // Setting alert dialog icon 
     alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail); 

    // Setting OK Button 
    alertDialog.setButton("OK", clickListener); 

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

這樣的點擊行爲由呼叫類處理,並且AlertDialogManager不知道點擊OK後會發生什麼。

相關問題