2013-02-15 3 views
4

"뒤로"버튼이 webview에서 작동하는 데 문제가 있습니다. 코드에서 나는 "mywebview가 해결 될 수 없습니다"라는 오류 (현재 마지막 @Override 아래)왜이 Android webview에서 뒤로 버튼이 작동하지 않습니까?

모두 mywebview.canGoBack()mywebview.goBack() 결과를 onKeyDown() 부분을 넣어해야하는 위치

는 잘 모르겠어요. 나는 바닥에 mywebview.setWebClient(...) 후 모든 방법을 브래킷을 이동하면

mywebview-error 멀리 간다, 그러나 override, onKeyDown, return true 및 오류의 모든 종류의 return super 결과.

아무에게 말해 줄 수 있습니까?

코드 :

package com.sib; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.KeyEvent; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class SiB extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.sib); 

     WebView mywebview = (WebView) findViewById(R.id.webview); 
     mywebview.loadUrl("url"); 

     WebSettings webSettings = mywebview.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 

     mywebview.setWebViewClient(new WebViewClient()); 

    } 


    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 

     if ((keyCode == KeyEvent.KEYCODE_BACK) && mywebview.canGoBack()) { 
      mywebview.goBack(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
} 

답변

2

onKeyDown에 다시 작동하지 않습니다. onBackPressed를 재정의해야합니다.

+0

빠른 응답을 보내 주셔서 감사합니다. 지금 일하고있어! 많이 감사합니다 – user2076551

3

mywebview을 클래스 인스턴스 변수로 지정하십시오.

public class SiB extends Activity { 
WebView mywebview; 

그리고 그것은 다음과 같아야합니다 onCreate()의 선언을 복용하여 그림자하지해야합니다 :

mywebview = (WebView) findViewById(R.id.webview); 
mywebview.loadUrl("url"); 

그리고 what I can find에 따라, 게이브는 권리입니다. 백 프레스 용 onKeyDown()은 API 4 이하에서만 사용됩니다. onBackPressed()은 API 4보다 최신 버전에서 작동해야합니다.

@Override 
public void onBackPressed(){ 

    if (mywebview.canGoBack()) { 
     mywebview.goBack(); 
     return; 
    } 
    super.onBackPressed();  
} 
+1

빠른 응답을 위해 고마워요! 너희 둘 다. 지금 일하고있어! 많이 감사합니다 – user2076551

+0

@ user2076551 문제가 해결되었으므로 [답변 중 하나를 수락해야합니다] (http://meta.stackexchange.com/a/5235/202881). –

관련 문제