0

我正在使用一个片段,其中我将返回事件用于 webview,但当我单击返回时它仍然会加载历史记录。如何在碎片中克服。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(event.getAction() == KeyEvent.ACTION_DOWN){ 
        switch(keyCode) 
        { 
        case KeyEvent.KEYCODE_BACK: 
            if(mWebView.canGoBack() == true){ 
                mWebView.goBack(); 
            }else{ 
                finish(); 
            } 
            return true; 
        } 

    } 
    return super.onKeyDown(keyCode, event); 
} 

但它仍然会加载以前的历史记录。提前致谢。

4

1 回答 1

0
Aa extends Fragment
{
   static  WebView w;
   View v;

   private Handler handler = new Handler(){

   @Override
   public void handleMessage(Message message) {

    switch (message.what) {
        case 1:{
            webViewGoBack();
        }break;
    }
}

private void webViewGoBack() {
    w.goBack();

    // TODO Auto-generated method stub

}
};

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle    savedInstanceState){

   v = inflater.inflate(R.layout.webs, container, false);

   w=(WebView)v.findViewById(R.id.webView1);

   }

   w.setOnKeyListener(new OnKeyListener(){

  @Override

  public boolean onKey(View v, int keyCode, KeyEvent event) {

        // TODO Auto-generated method stub
  if((keyCode==KeyEvent.KEYCODE_BACK)&& w.canGoBack())

        {

            handler.sendEmptyMessage(1);

            return true;

        }
        return false;
    }

  });
于 2013-06-03T11:24:36.877 回答