【问题标题】:What is being passed as first parameter of a new Intent instance? [duplicate]什么是作为新 Intent 实例的第一个参数传递的? [复制]
【发布时间】:2016-06-01 08:42:56
【问题描述】:
Intent intent = new Intent(this, SecondActivity.class);
    startActivity(intent);

我说的是上面那行代码。这是我在我的 MainActivity 类中的 onCreate 方法下编写的。它应该激活第二个活动。但是我想了解参数中的“this”是什么?

【问题讨论】:

  • Intent 第一个参数采用 Context 类实例,在您的情况下,如果 MainActivity 扩展 Activity,那么我们也可以通过 this 引用当前类的引用。因为 MainActivity 类扩展了 Activity 和 Activity 是 Context 类的子类。所以我们可以将this 作为第一个参数传递给 Intent 构造函数

标签: android android-studio android-intent android-activity


【解决方案1】:

您只需阅读与此调用相关的文档:

@param packageContext 应用程序包实现的上下文 这节课。 @param cls 用于意图的组件类。

所以第一个参数只是一个context

如果你尝试深入挖掘,你会发现这个上下文被用来创建一个ComponentName,上面写着

实现组件的包的上下文,将从中检索实际的包名称。

【讨论】:

  • 这意味着如果我将在 Fragment 类中使用它,它应该写为 Intent intent = new Intent(getActivity().getApplicationContext(), SecondActivity.class);开始活动(意图);
  • 或者干脆Intent intent = new Intent(getContext(), SecondActivity.class);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-11
  • 2018-01-14
  • 2014-04-17
  • 2019-10-19
  • 2018-08-26
相关资源
最近更新 更多