3

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

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

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

当用户单击其中一个用户名时,将弹出用户名配置文件的 web 视图。当然,当用户按下“返回”时,它会返回到用户名列表。

有人可以根据Activity 和 Views向我解释一下吗?我是否使用两项活动来做到这一点?当用户在它们之间单击时,我是否隐藏 webview 或 listview?

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

谢谢

4

3 回答 3

3

当用户打开应用程序时,会出现一个屏幕,上面有一个按钮,上面写着“登录”。用户点击按钮,会弹出一个 webview 允许他登录网站。登录后(应用程序需要以某种方式知道),

哟可以用两个单独的Activity类来做到这一点。我会把它放在WebView自己的Activity. 这比View自己管理许多不同的对象要容易。此外,如果您将每个部分放在自己的Activity.

您可以Activity使用方法启动登录startActivityForResult()如果登录成功与否,则允许它返回。

如果要检测登录,可以WebView使用 a监视事件WebViewClient。你设置WebViewClient你的WebView使用setWebViewClient()方法

网络视图会消失,

Activity只需使用 an开始下一个Intentfinish()第一个Activity. 如果您这样做,那么如果他们单击返回,则用户将不会返回登录按钮 Activity,因为它不再位于堆栈中。

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

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

使用ListActivity. 这是一个Activity为显示单个ListView.

当用户单击其中一个用户名时,将弹出用户名配置文件的 web 视图。当然,当用户按下“返回”时,它会返回到用户名列表。

所以使用onListItemClick()方法ListActivity来检测触摸并启动一个新Activity的包含WebView来显示配置文件。因为这是新Activity的,所以后面的处理是全自动的。

于 2010-02-07T07:35:26.587 回答
1

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

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

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

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

编辑:

AnActivity是绑定到 AndroidManifest.xml 作为应用程序的主要入口点的内容。AView包含您的 中的用户交互组件Activity,例如登录按钮、显示用户名、在 Web 上查看内容 ( WebView) 等。

于 2010-02-07T07:27:22.097 回答
1

首先,我会考虑一种不同的方法来解决这个问题。

您可以在 Andoid 中创建自己的登录布局并将您的登录数据发送到网站。完成此操作后,您应该创建一个包含所有用户名的 ListView。如果用户选择这些用户名之一,您应该打开一个 WebView。

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

如果它是您要登录的网站,您可以为您的登录编写一个小包装器,它为您的登录返回真/假。(返回 xml 或纯文本的 php 包装器)

无论如何,如果您真的想通过 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。在您的情况下,它将是您的登录按钮的网址或网址的一部分。

不过,您必须检查您的登录是否成功!

编辑:见第一条评论!

于 2010-02-07T07:27:58.870 回答