我有一个活动,其中有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 =
"<html><head>" +
"</head>" +
"<body>" +
"<section id=\"content\">" +
story.getContent() +
"</section>" +
"</body></html>"; //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);
}
Run Code Online (Sandbox Code Playgroud)
}
试试这个,它将满足你的目的
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;
}
Run Code Online (Sandbox Code Playgroud)
});
对于Android 2.2及以上版本:
@Override
public void onBackPressed()
{
if(webView.canGoBack())
webView.goBack();
else
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1745 次 |
| 最近记录: |