Встраивание 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");
}