Android,列表视图和活动架构

时间:2011-12-28 00:18:46

标签: android

我是Android新手,在这里我对架构有疑问:

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

所以我的问题是: 常规类(不是Activity)可以调用Activity来打开webview吗?怎么样? 然后,该类如何监听Activity的结果并将该响应发送到显示ListView的Activity以便更新它? 这个架构好吗?我认为应该有更好更优雅的方式,不是吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

我认为最好的方法是从Activity WebView开始显示ListView的{​​{1}}。您可以使用Activity方法启动WebView活动,并在startActivityForResult()中收听结果。

您可以查看this页面,了解如何操作。

如果您仍想从非onActivityResult()开始活动,则必须创建Activity Class并使用应用程序上下文启动活动。请注意,从非活动类启动活动时,必须设置NEW_TASK标志。问题是如果以这种方式启动活动,我认为你不能调用onActivityResult()方法。

答案 1 :(得分:0)

WebView继承自View,因此它需要位于Activity的布局结构中。如果你愿意的话,你需要构建和活动来处理网络登录。

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

答案 2 :(得分:0)

为了调用某个活动,它需要一个上下文。如果您需要的课程不是活动,而是活动的一部分,要获得该权限,您需要将上下文传递给该类。请注意,如果该类以任何方式保持活动后,您可以泄露上下文。