-2

私は を持っていWebViewて、 からデータを取得していWebServiceます。私の問題は、url's取得しているデータが非常に多く、ユーザーがそれをクリックするとWebView、ブラウザではなく次のページにロードする必要があることです。どうすればそれを達成できますか?試しshouldOverrideUrlLoadingましたが、うまくいきません。

4

1 に答える 1

0

これを試して。

public class WebViewActivity extends Activity {
    private ProgressDialog progressBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        progressBar = ProgressDialog.show(this, "Hi", "me");
        WebView webView = (WebView) findViewById(R.id.webView1);

        webView.setWebViewClient(new MyWebViewClient());
        webView.loadUrl("http://www.mysite.com/android.php");
    }

    private class MyWebViewClient extends WebViewClient {

        @Override
        public void onPageFinished(WebView view, String url) {
            if (progressBar != null && progressBar.isShowing()) {
                progressBar.dismiss();
            }
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            System.out.println("here");


            //Upadated code..........

            Bundle bundle = new Bundle();
            //Add your data from getFactualResults method to bundle
            bundle.putString("NextUrl", url);

            Intent i = new Intent(WebViewActivity.this, NextActivity.class);
            i.putExtras(bundle);
            startActivity(i);

            //-----------------------

            Log.i("Hi", "WEb nextttt");

            return true;
        }
    }
}


 NextActivity 


 public class NextActivity extends Activity {

    WebView wv1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);

        Bundle bundle = getIntent().getExtras();

        //Extract the data…
        String url = bundle.getString("NextUrl");        


        Log.i("Hi", "Get next");
        wv1 = (WebView) findViewById(R.id.webView1);
        wv1.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
        wv1.getSettings().setSupportZoom(false);
        wv1.getSettings().setSupportMultipleWindows(false);
        wv1.setHorizontalScrollBarEnabled(false);
        wv1.setVerticalScrollBarEnabled(false);
        wv1.getSettings().setUseWideViewPort(true);
        wv1.getSettings().setLoadWithOverviewMode(true);
        wv1.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView viewx, String urlx) {
                viewx.loadUrl(urlx);
                return false;
            }
        });
        try {
            wv1.loadUrl(url);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
于 2013-08-26T10:15:47.177 に答える