1

次のコードがあります。

public class MyActivity extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        WebView webview = new WebView(this);
        webview.getSettings().setJavaScriptEnabled(true);

        //Add a client to the view
        webview.setWebViewClient(mClient);
        webview.loadUrl("http://www.google.com");
        setContentView(webview);
    }

    private WebViewClient mClient = new WebViewClient()
    {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            Uri request = Uri.parse(url);
            if(TextUtils.equals(request.getAuthority(), "www.google.com"))
            { //Allow the load
                return false;
            }
            Toast.makeText(MyActivity.this, "Sorry, buddy", Toast.LENGTH SHORT).show();
            return true;
        }
    };
}

if 条件まで理解しましたが、Toast.makeText() は何をしますか? true を返すとどうなりますか?

4

5 に答える 5

2

ドキュメントと呼ばれる小さな場所ですべての答えを見つけることができます。

これがmaketext用のものです:http://developer.android.com/reference/android/widget/Toast.html#makeText%28android.content.Context,%20java.lang.CharSequence,%20int%29

shoudOverrideUrl のもう 1 つ: http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading%28android.webkit.WebView,%20java.lang.String%29

トーストを作成するために makeText が使用されていることがわかりますが、表示するにはメソッド show() を呼び出す必要があるため、コードは間違っています。

shouldOverrideUrlLoading に関しては、ホスト アプリケーションが現在の WebView を離れて URL 自体を処理したい場合は True を返し、それ以外の場合は False を返します。

コードが行うことは、「要求された URL が www.google.com でない場合」、ロードせずにエラー トーストを表示することです。

于 2013-09-30T06:33:13.100 に答える
1

Androidのドキュメントから:

http://developer.android.com/reference/android/widget/Toast.html

トーストは、ユーザーへの簡単なメッセージを含むビューです。

参照: http://developer.android.com/guide/topics/ui/notifiers/toasts.html

「if」条件を理解しているとおっしゃいました。渡された URL に基づいて、この WebView にコンテンツをロードして戻すかどうかを決定し、ユーザーが Google サイトを離れないようにします。

于 2013-09-30T06:31:10.903 に答える
0

ページを読み込めなかった場合は、デバイスに「Sorry, buddy」という短いメッセージが表示されます

于 2013-09-30T06:28:36.340 に答える
0

getAuthority() - この URI のデコードされた機関部分を取得します。if(TextUtils.equals(request.getAuthority(), "www.google.com"))- リクエスト uri のアソリティ部分を文字列 "www.google.com" と比較します。true の場合は false を返し、それ以外の場合は true を返しますまた、トーストメッセージも表示されます(トーストは、Androidで短いメッセージを表示するために使用されるオブジェクトです)。

WebViewClient が提供されている場合、true を返すとホスト アプリケーションが URL を処理することを意味し、false を返すと現在の WebView が URL を処理することを意味します。このメソッドは、POST「メソッド」を使用するリクエストでは呼び出されません。

于 2013-09-30T06:31:48.453 に答える
0

WebView が Web ページを読み込めなかった場合は、トースト メッセージが表示されます。true を返した後、webview は終了します。

于 2013-09-30T06:33:34.413 に答える