当用户打开应用程序时,会出现一个屏幕,上面有一个按钮,上面写着“登录”。

用户点击按钮,就会弹出一个 webview,让他登录网站。

登录后(应用程序需要以某种方式知道),网络视图将消失,然后会弹出用户名列表。(列表显示?)

当用户单击其中一个用户名时,将弹出该用户名个人资料的网页视图。当然,当用户按“返回”时,它会返回到用户名列表。

有人可以向我解释一下吗 活动和观点?我是否使用两项活动来执行此操作?当用户在 webview 或 listview 之间单击时,我是否隐藏它们?

我完成了教程(记事本教程),但我仍然对开发这个的最佳方法感到困惑。

谢谢

有帮助吗?

解决方案

当用户打开应用程序时,会有一个带有按钮的屏幕,上面显示“登录”。用户单击该按钮,然后弹出网络浏览量以允许他登录网站。登录后(应用程序需要以某种方式知道),

你可以用两个单独的 Activity 类。我会把 WebView 在它自己的 Activity. 。这比管理许多不同的 View 自己反对。另外,如果将每个部分放在自己的位置,您将获得不同事物之间的过渡 Activity.

您将可以启动登录 ActivitystartActivityForResult() 方法, ,允许它返回登录是否成功。

如果你想检测登录,你可以监视事件 WebView 用一个 WebViewClient. 。您设置了 WebViewClient 你的 WebView 使用 setWebViewClient() 方法.

网络视图将会消失,

简单开始下一个 Activity 使用一个 Intent 并打电话 finish() 方法 在你的第一个 Activity. 。如果您这样做,那么如果他们单击返回,则用户将不会返回到登录按钮活动,因为它不再位于堆栈上。

我不清楚该网站的登录有效期是多长时间。您可能需要 在清单中的活动上设置标志, ,以确保用户在离开然后返回到您的应用程序时必须重新登录。

然后会弹出用户名列表。(列表显示?)

用一个 ListActivity. 。这是一 Activity 其附带的 API 设计用于显示单个 ListView.

当用户单击其中一个用户名时,将弹出该用户名个人资料的网页视图。当然,当用户按“返回”时,它会返回到用户名列表。

所以使用 onListItemClick() 中的方法 ListActivity 检测触摸并启动新的 Activity 含有 WebView 显示个人资料。由于这是在新的 Activity 背部处理是全自动的。

其他提示

本质上,这一切都可以在一项活动中完成。我可以尝试轻松地演示如何做到这一点。

  1. 当您运行应用程序时, Activity (AndroidManifest.xml) 叫做。
  2. View (可以调用main.xml)显示为显示登录按钮
  3. 单击该按钮后,您将启动您的 WebView
  4. 登录成功,切换 View 到显示用户名的自定义视图 ListView (可能是您创建的预定义 XML 文件,名为 用户列表.xml)
  5. 使用 onClick 在特定用户名上将启动 WebView 关于该特定用户名。

要在用户点击“后退”按钮时返回到您的应用程序,您可能需要使用 onPauseonResume 但我不确定。

这可能不是最好的方法,甚至不是一个好的方法,但它可能有助于消除任何混乱。

编辑:

一个 Activity 是绑定到 AndroidManifest.xml 作为应用程序的主要入口点的内容。A View 包含您的用户交互组件 Activity, ,例如登录按钮、显示用户名、查看网络内容(WebView), ETC。

首先我会考虑处理这个问题的方式不同。

您可以创建在Andoid自己的登录布局和您的登录信息发送到该网站。这样做了以后,你应该创建所有用户名的一个ListView。如果用户选择这些用户名中的一个应打开一个网页视图。

问题是,你必须检查登录是否成功与否!基本上你需要做的HttpRequest,解析输出,并检查它。

如果这是你的网站,你想登录你可以写你的登录小包装返回true / false为您的登录。 (PHP的包装器返回XML或明文)

无论如何,如果你真的想通过的WebView做登录您可以通过检查:

private void initWebView(final WebView mWebView) {
    mWebView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            Page = new WebView(YourClass.this);
            Page.getSettings().setJavaScriptEnabled(true);
            Page.loadUrl(url);

            if(url.contains("OkDoLogIn.php")) {
                /* Check if login was successful if true start new Activity */
            }
            return true;
        }
    });
}

使用url.contains(“OkDoLogIn.php”)你基本上检查哪些URL即将开启。在你的情况下,将URL或您的登录按钮的URL的一部分。

不过你必须检查,如果你登录成功与否!

编辑:见注释1

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top