我希望当有人点击按钮更改使用的URL WebView时。
第一次,应用程序显示yahoo.com。这是对的。 当有人点击第一个或第二个按钮时,会在浏览器中打开链接。我需要做些什么才能刷新"这页纸?希望你明白。
这是我的.xml文件:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
tools:context=".MainActivity"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button1"
android:id="@+id/button1"
android:onClick="buttonClick"
android:layout_weight="1.0" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button2"
android:id="@+id/button2"
android:onClick="buttonClick"
android:layout_weight="1.0" />
</LinearLayout>
<WebView
android:id="@+id/activity_main_webview"
android:layout_height="0dp"
android:layout_width="fill_parent"
android:layout_weight="0.9"/>
</LinearLayout>
这是我的MainActivity.java:
public class MainActivity extends AppCompatActivity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
WebSettings webSettings = mWebView.getSettings();
Context context = this;
mWebView.getSettings().setGeolocationDatabasePath(context.getFilesDir().getPath());
webSettings.setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient());
mWebView.setWebChromeClient(new WebChromeClient() {
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
}
});
mWebView.loadUrl("http://yahoo.com");
}
public void buttonClick(View v) {
switch (v.getId()) {
case R.id.button1:
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
mWebView.loadUrl("http://google.com");
break;
case R.id.button2:
setContentView(R.layout.activity_main);
mWebView.loadUrl("http://bing.com");
break;
}
}
}
答案 0 :(得分:0)
loadUrl
正在打开一个新的浏览器,因为您重置了布局,从而生成了一个没有webviewclient
的新webview对象。
删除
setContentView(R.layout.activity_main);
线条以及webview的重新启动 你会得到:
public void buttonClick(View v) {
switch (v.getId()) {
case R.id.button1:
mWebView.loadUrl("http://google.com");
break;
case R.id.button2:
mWebView.loadUrl("http://bing.com");
break;
}
}