3

ユーザーがアプリケーションを開くと、「ログイン」というボタンが付いた画面が表示されます。

ユーザーがボタンをクリックすると、Webビューがポップアップ表示され、Webサイトにログインできるようになります。

ログイン後(アプリは何らかの方法で知る必要があります)、Webビューが消え、ユーザー名のリストがポップアップ表示されます。(リストビュー?)

ユーザーがユーザー名の1つをクリックすると、ユーザー名のプロファイルのWebビューがポップアップ表示されます。もちろん、ユーザーが「戻る」を押すと、ユーザー名のリストに戻ります。

誰かがこれをアクティビティとビューの観点から説明できますか?これを行うために2つのアクティビティを使用していますか?ユーザーがそれらの間をクリックしたときにWebビューまたはリストビューを非表示にしますか?

私はチュートリアル(メモ帳のチュートリアル)を行いましたが、これを開発するための最良の方法についてはまだ混乱しています。

ありがとう

4

3 に答える 3

3

ユーザーがアプリケーションを開くと、「ログイン」というボタンが付いた画面が表示されます。ユーザーがボタンをクリックすると、Webビューがポップアップ表示され、Webサイトにログインできるようになります。ログイン後(アプリはどういうわけか知る必要があります)、

Yoは2つの別々のActivityクラスでこれを行うことができます。私はWebViewそれ自身に入れActivityます。これは、多くの異なるViewオブジェクトを自分で管理するよりも簡単です。また、各パーツを独自のパーツに入れると、さまざまなものの間でトランジションが発生しますActivity

メソッドを使用しActivityログインを起動し、ログインが成功したかどうかにかかわらず、ログインを返すことができます。startActivityForResult()

WebViewログインを検出する場合は、を使用してイベントを監視できますWebViewClientメソッドを使用してのを設定しWebViewClientます。WebViewsetWebViewClient()

ウェブビューが消える、

Activityを使用して次を開始し、最初メソッドIntentを呼び出すだけです。これを行うと、スタックに存在しなくなるため、クリックして戻っても、ログインボタンのアクティビティに戻ることはありません。 finish()Activity

私がはっきりしていないのは、ウェブサイトでのログインが有効になる期間です。マニフェストのアクティビティにフラグを設定して、ユーザーがアプリケーションを離れてからアプリケーションに戻った場合にユーザーが再度ログインする必要があることを確認する必要がある場合があります。

次に、ユーザー名のリストがポップアップ表示されます。(リストビュー?)

を使用しListActivityます。これは、Activity単一のを表示するために設計されたAPIに付属していますListView

ユーザーがユーザー名の1つをクリックすると、ユーザー名のプロファイルのWebビューがポップアップ表示されます。もちろん、ユーザーが「戻る」を押すと、ユーザー名のリストに戻ります。

したがって、のonListItemClick()メソッドをListActivity使用してタッチを検出し、Activityを含む新しいを起動しWebViewてプロファイルを表示します。これは新しいものなActivityので、バックハンドリングはすべて自動です。

于 2010-02-07T07:35:26.587 に答える
1

基本的に、すべてを1つのアクティビティ内で実行できます。それがどのように行われるかを簡単に示すことができます。

  1. アプリを実行すると、ActivityAndroidManifest.xml)が呼び出されます。
  2. Viewmain.xmlと呼ぶことができます)は、ログインボタンを表示して表示されます
  3. ボタンをクリックすると、WebView
  4. ログインに成功するViewと、にユーザー名を表示するカスタムビューに切り替わります( userlist.xmlListViewという名前で作成した定義済みのXMLファイルの場合があります) 。
  5. 特定のユーザー名で使用onClickすると、その特定のユーザー名に関するが起動しWebViewます。

ユーザーが[戻る]ボタンを押したときにアプリケーションに戻るには、を利用する必要があるかもしれませんが、onPauseよくonResumeわかりません。

これは最善のアプローチではないかもしれませんし、良いアプローチでもないかもしれませんが、混乱を解消するのに役立つかもしれません。

編集:

AnActivityは、アプリケーションへのメインエントリポイントとしてAndroidManifest.xmlにバインドされるものです。Aには、ログインボタン、ユーザー名の表示、Webでのコンテンツの表示()などのViewユーザーインタラクティブコンポーネントが含まれています。ActivityWebView

于 2010-02-07T07:27:22.097 に答える
1

まず第一に、私はこの問題に取り組む別の方法を考えます。

Andoidで独自のログインレイアウトを作成し、ログインデータをWebサイトに送信することができます。これを行った後、すべてのユーザー名のListViewを作成する必要があります。ユーザーがこれらのユーザー名の1つを選択した場合は、WebViewを開く必要があります。

問題は、ログインが成功したかどうかを確認する必要があるということです。基本的に、HttpRequestを実行し、出力を解析してチェックする必要があります。

ログインしたいのがあなたのウェブサイトであるなら、あなたはあなたのログインのためにtrue/falseを返すあなたのログインのための小さなラッパーを書くことができます。(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を開こうとしているのかを確認できます。あなたの場合、それはあなたのログインボタンのURLまたはURLの一部になります。

それでも、ログインが成功したかどうかを確認する必要があります。

編集:最初のコメントを参照してください!

于 2010-02-07T07:27:58.870 に答える