2012-08-17 26 views
2

我想完成我的class從一個靜態方法擴展FragmentActivity: -完成FragmentActivity從靜態方法

private static void myFinish(Context context,Activity activity) { 
    [some code] 
    activity.finish(); 
} 

從這個方法: -

private static void remove(Context context) { 
     myFinish(context, ((Activity) context).getParent()); 
} 

此代碼compiles但給了我一個錯誤: -

java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity 

我該如何解決這個問題?

+0

看起來像你的背景來自於應用程序,而不是活動 – sherpya 2012-08-17 12:46:24

回答

5

我找到了一個簡單的解決方案。 聲明:本

Activity activity; 

在的onCreate:

activity = this; 

然後

activity.finish(); 

做的工作。

2

我想你想完成你FragmentActivity從片段中的一個內..

這是如何工作的:

getActivity().finish();

如果你是在FragmentActivity本身,你可以使用finish()

+0

不,我得到一個'方法getActivity()未定義類型SmsPopupActivity'。我在:'公共類SmsPopupActivity擴展FragmentActivity {' – Hoconosc 2012-08-17 12:44:31

+0

我已更新我的帖子。 – DroidBender 2012-08-17 12:53:22

+1

我已經試過了,我得到了'不能從Activity類型中對非靜態方法finish()進行靜態引用 – Hoconosc 2012-08-17 12:59:38

0

這對我有用。我希望這有幫助。

((Activity)context).finish(); 
0

做一個活動EmptyActivity,調用由意向的EmptyActivity,只需完成EmptyActivity但把機器人:noHistory =「真」在EmptyActivity清單中