【问题标题】:Finish FragmentActivity from static method从静态方法完成 FragmentActivity
【发布时间】:2012-08-17 12:32:42
【问题描述】:

我正在尝试完成我的class,它从静态方法扩展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

我该如何解决这个问题?

【问题讨论】:

  • 看起来您的上下文来自应用程序而不是活动

标签: java android exception casting


【解决方案1】:

我找到了一个简单的解决方案。 声明:

Activity activity;

在 onCreate 中:

activity = this;

然后

activity.finish();

做的工作。

【讨论】:

    【解决方案2】:

    我想你想在你的一个片段中完成你的FragmentActivity..

    这就是它的工作原理:

    getActivity().finish();

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

    【讨论】:

    • 不,我收到了The method getActivity() is undefined for the type SmsPopupActivity。我在:public class SmsPopupActivity extends FragmentActivity{
    • 我已经试过了,我得到Cannot make a static reference to the non-static method finish() from the type Activity
    【解决方案3】:

    这对我有用。我希望这会有所帮助。

    ((Activity)context).finish();
    

    【讨论】:

    • 简单的方法。上下文上下文;然后在 oncreate : context = this;
    【解决方案4】:

    创建一个 Activity EmptyActivity ,通过 Intent 调用一个 EmptyActivity ,简单地完成 EmptyActivity 但将 android:noHistory="true" 放入清单中的 EmptyActivity

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-14
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      相关资源
      最近更新 更多