在android fragment webview上实现后退按钮
我想为我的webview片段实现back按钮,在stackoverflow上尝试了不同的答案,但无法让它与我的代码一起工作 下面是我的代码在android fragment webview上实现后退按钮,android,android-fragments,webview,Android,Android Fragments,Webview,我想为我的webview片段实现back按钮,在stackoverflow上尝试了不同的答案,但无法让它与我的代码一起工作 下面是我的代码 public class LoginFragment extends Fragment { public LoginFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,
public class LoginFragment extends Fragment {
public LoginFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_login, container, false);
WebView webView = (WebView) rootView.findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("http://example.com/");
return rootView;
}
}
我甚至试过这个,在developer.android.com上找到了
public boolean WebViewGoBack() {
if(webView.canGoBack()){
webView.goBack();
return true;
}
return false;
}
谢谢你的帮助 试试这个:
@Override
public void onBackPressed() {
if (webView.canGoBack()) { //Gets whether this WebView has a back history item.
webView.goBack(); //this takes to the previous page
} else {
super.onBackPressed();// it finishes the current activity
}
}
你能解释一下为什么/如何用这个代码回答这个问题吗?不鼓励只使用代码的答案,因为它们不像带有解释的代码那么容易学习。在没有解释的情况下,理解所做的工作或对代码所做的更改需要花费相当多的时间和精力。对于试图从答案中学习的人和评估答案的人来说,解释都很重要,以确定答案是否有效或是否值得投票。什么处理程序应该是这样的:“private handler handler=new handler(){@Override public void handleMessage(Message Message){switch(message.what){case 1:{webViewGoBack();}break;}}};};};};}的可能重复
public class LoginFragment extends Fragment {
public LoginFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_login, container, false);
WebView webView = (WebView) rootView.findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("http://example.com/");
webView.setOnKeyListener(new OnKeyListener(){
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
handler.sendEmptyMessage(1);
return true;
}
return false;
}
});
return rootView;
}
}
}