0

calss のコールバック ハンドルを作成webChromeClient()し、ボタンをリッスンする方法は? 私が抱えている問題は、buttonedittextフィールドがあり、どちらも と がそのRelativeLayout上に配置されているため、表示された Web ページの内容が と の両方とwebView混ざることを避けることができるということです。フィールドを持つ目的は、ユーザーが Web ページ名を入力できるようにすることです。を持つ目的は、ユーザーが入力した Web ページを起動することです。また、コールバック内でクラスとトーストを使用して、Web ページの読み込みが完了するたびに通知します。しかし、フィールドで指定された Web ページを起動するために を押すたびに、コールバックbuttonedittextedittextbuttonwebClientViewonPageFinishedbuttonedittextonPageFinishWeb ページの読み込みが完了する前であっても、常に呼び出されます。たとえば、 で Web サイトのアドレスを指定してを繰り返しedittext押すbuttonと、 を押した回数だけトーストが出力されますbutton私がここに投稿した私の質問を参照してください。これはほぼ同じ問題に関するものです。それは私の問題を部分的に解決したにもかかわらず、アプリの要求をコーディングしていたときに、ここで参照した質問に対する答え が継ぎ目であり、十分ではないことに気付きました. webChromeViewクラスを使用してその問題を解決する方法はありますか? そしてどうやって?

Java コード:

OnClickListener btnGoListener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        webView00.loadUrl(etUrl.getText().toString());
        webView00.setWebViewClient(new WebViewClient() {

            public void onPageFinished(WebView view, String url) {
                Toast.makeText(getBaseContext(), "Loading Finished 2", Toast.LENGTH_LONG)
                .show();
            }
        });
    }
};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_web_page00);

    webView00 = (WebView) findViewById(R.id.webView00);
    btnGo = (Button) findViewById(R.id.go_btn);
    etUrl = (EditText) findViewById(R.id.url_edittext);

    webView00.getSettings().setJavaScriptEnabled(true);
    webView00.setWebChromeClient(new myWebChromeClient());

    btnGo.setOnClickListener(btnGoListener);
    webView00.loadUrl("http://google.com");
    webView00.setWebViewClient(new WebViewClient() {
        public void onPageFinished(WebView view, String url) {
            Toast.makeText(getBaseContext(), "Loading Finished 1", Toast.LENGTH_LONG)
            .show();
        }
    });

}

public class myWebChromeClient extends WebChromeClient {

}
4

1 に答える 1