【问题标题】:how to get the context of the caller activity如何获取调用者活动的上下文
【发布时间】:2020-06-03 09:00:59
【问题描述】:

在我需要为学校制作的 android 应用程序中,我有一个创建组的活动,这应该从组列表活动中访问,该活动需要作为上下文给出。当用户创建组时,他不应该返回创建组活动。组列表活动为自己提供了意图,但是当我尝试运行应用程序时出现空指针异常。

意图的创建:

    public void createGroup(View view) {
        Intent intent = new Intent(this, NewGroupActivity.class);

        Bundle bundle = new Bundle();
        bundle.putSerializable(NewGroupActivity.EXTRA_CONTEXT, this);
        intent.putExtras(bundle);

        startActivity(intent);
    }

请求数据的行:this.mContext = (Context) getIntent().getExtras().getSerializable(EXTRA_CONTEXT);

崩溃的部分:

                                // this crashes
        Intent intent = new Intent(this.mContext, GroupActivity.class);
        startActivity(intent);

【问题讨论】:

  • 您能否更好地说明您的程序应该做什么?我现在似乎有点不清楚。
  • 这个活动使一个组对象被发送到服务器。之后它将返回组列表。它需要通过上下文知道它来自哪里,但不能是这个活动,因为该组已经创建,因此无需返回创建组活动

标签: android android-intent android-context


【解决方案1】:

你很困惑。当您像这样创建Intent 时:

    Intent intent = new Intent(context, MyActivity.class);

context 参数仅用于获取应用的包名。就是这样。所以你不需要在“额外”中发送你的Context

要从NewGroupActivity 启动GroupActivity,您可以这样做:

    Intent intent = new Intent(this, GroupActivity.class);
    startActivity(intent);

【讨论】:

  • 我不想用这个,因为你不按按钮就不能回到这里
  • 对不起,你还是一头雾水。我不明白你的问题。请更详细地说明您想要做什么。 “返回此处”是什么意思,什么按钮?
  • 你不应该使用所有安卓手机上的后退按钮返回这里。
  • 还是不明白。你有一个崩溃。我告诉你如何修复崩溃。它不会改变后退按钮的行为。 BACK 按钮的正常行为是完成当前Activity 以返回到堆栈中位于其下方的Activity。如果您不想要正常行为,那么您可以覆盖 onBackPressed() 并执行其他操作。这与您的崩溃解决方案无关。请再次说明问题。
  • 我需要类似于芬兰语的行为,这就是为什么我需要为其他活动提供上下文
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 2013-11-23
  • 2020-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
相关资源
最近更新 更多