我有一个活动,其中有Webview可用.如果我单击webview中的任何URL,该URL将打开,但是当我单击后退按钮时,它不会出现在上一个Webview页面上,而是继续进行该webview页面之前的活动.
Scenerio: -我正在使用Xyz Activity,在Xyz活动的某些元素上单击它转到Webview活动,该活动显示webview上加载的URL.在webview上,如果我点击任何网址链接,它会打开,但是当我点击后退按钮时,它会返回到Xyz活动而不是Webview活动.我想回到Webview Activity而不是Xyz Activity.
任何人都可以指导我同样的,因为我无法找到我应该使用或实现什么使其按我的需要工作?任何帮助将不胜感激.提前致谢...
编辑:-
代码如下: -
public class StoryDetail extends SherlockActivity { WebView content; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.story_detail); BaseStory story = BaseStory.createFromCursor(c); // BaseStory is a class containing Database values... // Get the fields content = (WebView) findViewById(R.id.content); content.getSettings().setPluginState(PluginState.ON_DEMAND); content.getSettings().setJavaScriptEnabled(true); content.getSettings().setAllowFileAccess(true); content.setWebChromeClient(new WebChromeClient()); content.setWebViewClient(new WebViewClient()); String html = "" + "" + "" + "" + story.getContent() + " " + ""; //story.getContent() contains title, image, and url link supporting HTML Format itself. //On clicking url link the webview open that page in Webview. content.loadDataWithBaseURL("http://somelink/", html, "text/html", "UTF-8", ""); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(event.getAction() == KeyEvent.ACTION_DOWN){ switch(keyCode) { case KeyEvent.KEYCODE_BACK: if(content.canGoBack()){ content.goBack(); }else{ finish(); } return true; } } return super.onKeyDown(keyCode, event); }
}
试试这个,它将满足你的目的
webView.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if(event.getAction() == KeyEvent.ACTION_DOWN) { WebView webView = (WebView) v; switch(keyCode) { case KeyEvent.KEYCODE_BACK: if(webView.canGoBack()) { webView.goBack(); return true; } break; } } return false; }
});
对于Android 2.2及以上版本:
@Override public void onBackPressed() { if(webView.canGoBack()) webView.goBack(); else super.onBackPressed(); }