首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意图构造函数参数

意图构造函数参数
EN

Stack Overflow用户
提问于 2015-08-12 16:36:54
回答 3查看 22.4K关注 0票数 14

意图类有6个构造函数。

意图() 创造一个空洞的意图。

意图(意图o) 复制构造函数。

意图(字符串操作) 用给定的动作创建一个意图。

意图(字符串操作,Uri uri) 为给定的操作和给定的数据url创建一个意图。

意图(上下文packageContext,类cls) 为特定组件创建一个意图。

意图(字符串操作、uri Uri、上下文packageContext、类cls) 使用指定的操作和数据为特定组件创建意图。

我在android编程方面几乎是新手,当我需要启动另一个ActivityFragment时,我通常使用第五个

代码语言:javascript
复制
Intent(Context packageContext, Class<?> cls)

当我想从一个Activity启动Fragment时,我会这样做:

代码语言:javascript
复制
Intent i = new Intent(getActivity(), DestinationActivity.class);

据我所知,getActivity()将返回一个Activity

但是构造函数需要一个Context,这怎么可能?

因为getActivity()返回的getActivity()隐式调用getApplicationContext()??

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-12 16:46:07

仔细看一下第五个意图声明中的论点Context。它反映了多态性。Intent接受一个Context参数,这样您就可以传递任何Context对象或从Context类派生的对象。

Activity、AppCompatActivity、IntentService、Service都是从Context类派生的,因此可以作为参数传递给方法。

票数 8
EN

Stack Overflow用户

发布于 2015-08-12 16:59:37

活动继承上下文。因此,如果您在一个活动中,您只需要传递自身来使用上下文。它还包含指向getBaseContext()的指针。如果您需要整个应用程序上下文,您可能偶尔需要引用它,但很可能有一段时间您不会引用。

您可以找到有关活动类这里的更多详细信息。

这个关于意图构造函数参数的问题与您的类似,并且有一个非常好的答案。我想你想看看。

希望能帮上忙。

票数 5
EN

Stack Overflow用户

发布于 2015-08-12 16:45:30

活动扩展了上下文,因此您可以直接转换它:

代码语言:javascript
复制
Intent i = new Intent((Context)getActivity(), DestinationActivity.class);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31970896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档