首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android、列表视图和活动架构

Android、列表视图和活动架构
EN

Stack Overflow用户
提问于 2011-12-28 08:18:46
回答 3查看 197关注 0票数 0

我是Android新手,这里我有一个关于架构的问题:

我有一个显示社交网络类的ListView的活动,每个社交网络类都是一个常规的类(而不是活动),它实现了一个具有登录方法的接口。因此,当我从ListView点击一个社交网络时,我调用所选网络的登录方法,该方法应该调用一个显示带有该网络登录站点的webview的活动,以获得Oauth令牌。当用户登录并授权应用程序时,需要关闭webview,并且ListView的项应该显示用户现在已登录到所选网络。

所以我的问题是:一个普通的类(而不是Activity)可以调用一个Activity来打开一个webview吗?多么?然后,该类如何侦听活动的结果并将响应发送到显示ListView的活动以更新它?那架构没问题吧?我觉得应该有更好更优雅的方式,不是吗?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-28 08:32:15

我认为对您来说最好的方法是启动Activity,从ListView Activity中显示WebView。您可以使用startActivityForResult()方法启动WebView活动,并在onActivityResult()中监听结果。

你可以查看this页面,看看如何做到这一点。

如果您仍然希望从非Activity Class启动活动,则必须创建一个Application Context Provider并使用应用程序上下文启动该活动。请注意,当您从非活动类启动活动时,必须设置NEW_TASK标志。问题是,如果您以这种方式启动活动,我不认为您可以调用onActivityResult()方法。

票数 1
EN

Stack Overflow用户

发布于 2011-12-28 08:31:46

WebView继承自视图,因此它需要位于活动的布局结构中。您将需要构建和活动来处理web登录,如果这是您的愿望。

您可以使用startActivityForResult指示您希望从正在启动的活动中获得结果,然后使用setResult返回结果。

票数 0
EN

Stack Overflow用户

发布于 2011-12-28 08:36:04

为了让某个东西调用一个活动,它需要一个上下文。如果您需要的类不是活动,而是活动的一部分,为了拥有该权限,您需要将上下文传递到该类。请注意,如果那个类以任何方式保留在活动后,您可能会泄露上下文。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8650628

复制
相关文章

相似问题

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