您好,我有一个奇怪的事情,我有一个项目列表,我想当我点击任何项目,它将打开一个WebView,看起来像这样:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:theme="@android:style/Theme.Dialog">
<WebView android:id="@+id/BrowserView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitXY" />
这是我调用WebView的代码
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
setContentView(R.layout.external_view);
// load url or html
RssItem listItem = (RssItem) listView.getItemAtPosition(position);
webView = (WebView) findViewById(R.id.BrowserView);
// set browser settings
webView.setWebViewClient(new ExternalWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
webView.setInitialScale(1);
try {
webView.loadUrl(listItem.getExternalUrl());
} catch (Exception ex) {
Log.d("WEBVIEW", ex.getMessage());
}
}
});
这是“ExternalWebViewClient”类
public class ExternalWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
view.clearHistory();
}
}
现在的问题是:
按下“后退”按钮后,如何关闭它并保持相同的活动, 这是我的后退按钮处理代码:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (webView.canGoBack() == true) {
webView.goBack();
} else {
//what should i do here?????????????????
return true;
}
}
}
return false;
}
答案 0 :(得分:1)
基本上,您不需要自己处理“后退”按钮。如果您在WebView中并按“返回” - 默认情况下应该将您带到上一个活动。