2012-09-18 33 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; 
     } 
    } 

对不起,我非常新的Android开发一窍不通的Java。请提供完整的代码:)

+0

您可以使用它同时包含的WebView和一些额外的控件布局(后退/前进/刷新/其他),然后在这些按钮的回调后的WebView采取相应的行动 – Kostas

+0

的是与上面的代码中发生了什么? – nandeesh

回答

1

正如科斯塔斯·提到你在你的XML创建一个按钮,然后在回调调用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(); '所以你需要在你的类中声明你的webview,而不是在你的'onCreate'方法中 – Zyber

+0

问题解决了吗? – Zyber