Встраивание webview в другое представление

у меня в моем приложении 2 вида:

а. РЭС/макет/главная.xml-стандартный вид с 1 кнопкой

b. res / layout / web_view.в XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
         <WebView android:id="@+id/webview"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent" />
</LinearLayout>

когда я нажимаю кнопку на первом представлении (a), он загружает webview(b) и загружает url:

// click on the "Browser" button in view a
public void goToWebView(View view) {
        setContentView(R.layout.web_view);
        WebView mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://www.google.com");
    }

все, что работает нормально, url-адрес загружается хорошо, но браузер создается в своем собственном представлении (третий, а не сам b), и моя цель-использовать Webview, чтобы показать некоторый HTML код в мое приложение, а не за его пределами, в отдельном браузере.

Anyboyd какие-нибудь идеи?

это делается с помощью API level8 / Android 2.2.

Спасибо за вашу помощь. Пол!--3-->

1 ответов


на самом деле я, наконец, понял. Даже если вы программно загружаете url с

mWebView.loadUrl("http://www.google.com");

вы также должны mofify поведение по умолчанию (который открывает url-адрес в новом экземпляре браузера).
Предыдущий код нуждается в 2 усовершенствованиях.

// override default behaviour of the browser
private class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }  

затем установите для представления, которое использует Webclient новое поведение:

public void goToWebView(View view) {
        setContentView(R.layout.web_view);
        WebView mWebView = (WebView) findViewById(R.id.webview);
        // add the following line ----------
        mWebView.setWebViewClient(new MyWebViewClient());
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://www.google.com");
    }