2012-09-18 10 views
0

앱을 종료하는 대신 뒤로 버튼을 이전 페이지/링크 기록으로 되돌리려면 어떻게합니까?WebView에 뒤로 버튼을 추가하는 방법은 무엇입니까?

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

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

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_dsaif); 
    runDialog(5); 
    WebView engine = (WebView) findViewById(R.id.web_engine); 
    engine.loadUrl("http://android.dsaif.tk/store/"); 
    engine.setWebViewClient(new HelloWebViewClient()); 
} 

    private class HelloWebViewClient extends WebViewClient { 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) {     

     return false; 
     } 
    } 

미안 안드로이드 개발에 아주 새로운 해요 및 Java에 대해 아무것도 몰라 :

여기 내 코드입니다. 당신은 당신의 XML의 버튼을 만든 다음 콜백에서 당신은 전화 코스타스에서 언급 한 바와 같이 전체 코드 :

+0

당신은 웹보기 및 일부 추가 컨트롤을 모두 포함하는 레이아웃을 사용할 수 있습니다 (뒤로/앞으로/재생/무엇이든) 한 후이 버튼의 콜백 따라 – Kostas

+0

위의 코드에 무슨 일이 일어나고있는 웹보기에 따라 행동에? – nandeesh

답변

1

을 제공하십시오 webview.goBack();

XML :

<Button 
    android:id="@+id/backBtn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Back /> 

활동

Button backButton = (Button) findViewById(R.id.backBtn); 
backButton.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     engine.goBack(); 
    } 
}); 

편집 :

이것은 히스토리가있는 경우 전화를 다시 되돌아 가게 버튼을 히스토리로 되돌려 놓을 것입니다.

public class someNameHere extends Activity{ 
    private WebView engine; 

    @Override 
    public void onCreate(...){ 
     ... 
     engine = (WebView) findViewById(R.id.web_engine); 
     ... 
    } 
    @Override 
    public boolean onKeyDown(...){ 
     if((keyCode == KeyEvent.KEYCODE_BACK) && engine.canGoBack()){ 
     engine.goBack(); 
     return true; 
     } 
     ... 
    } 
+0

방금 ​​전화기의 뒤로 버튼을 눌러야합니다. 화면에 아무런 버튼이 없습니다. – user1561329

+0

그러면 onKeyDown에서 사용중인 webview를 호출해야합니다. 당신은'WebView.goBack();'을 호출하고 있지만 그것은'engine.goBack(); 그러므로 클래스에 웹뷰를 선언해야하고 onCreate 메소드가 필요 없습니다. – Zyber

+0

문제가 해결 되었습니까? – Zyber

관련 문제