如何处理在Activity Android中打开的关闭WebView?

时间:2012-02-05 10:21:30

标签: android webview

您好,我有一个奇怪的事情,我有一个项目列表,我想当我点击任何项目,它将打开一个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;
}

1 个答案:

答案 0 :(得分:1)

基本上,您不需要自己处理“后退”按钮。如果您在WebView中并按“返回” - 默认情况下应该将您带到上一个活动。