【发布时间】:2014-01-24 19:27:28
【问题描述】:
我的代码有问题,我不确定我编写程序的方式是否是最好的编写方式。
切入正题..
在我的应用程序的onCreate 方法中,setContentView(R.layout.activity_main);
被调用。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//extra code..
//there is a lot of code from here on out, but it is not relevant to my question.
}
显示一个 WebView,其中加载了 4 张图像。用户可以点击其中任意一张图片,它会将用户带到 4 个不同网站中的 1 个,每张图片对应一个不同的 url。
在此应用程序中,我将覆盖 public void onBackPressed()
现在问题来了。
当用户浏览网页并有一个“历史”(所有这些都在 webview 中处理),这意味着用户可以点击返回,它将一直回到页面的开头,直接回到用户所在的位置当他们单击其中一个图像时开始.. 但它不会回到程序最初开始的视图.. 这意味着当用户在我的 webview 中浏览页面并单击后退按钮时,它走得最远back to 是网页的开头。
我希望它回到应用程序的开头,屏幕上出现 4 张图像,用户可以单击不同的图像(即选择不同的网页)。
我尝试过的
为了解决这个问题,我假设我会尝试创造一个条件。如果网页不能再返回,一个方法会再次调用setContentView(R.layout.activity_main)。
这确实有效.. 只有一个大问题。当布局加载时,所有 4 张图片都不会响应任何类型的点击,即使按下后退按钮,应用程序也不会退出。
不抛出异常,不发生崩溃。
什么是解决我的问题的好方法?
如果需要,我可以发布代码。
【问题讨论】:
-
如果你在 xml 中定义 onClick 而不是在 onCreate 中,图像将收到点击,我还没有清楚地知道你的问题,但我必须说这不是一个好的解决方案
-
您是否再次尝试了 webview.loadUrl() 或者您有特定的理由不这样做?
-
您的 webview 和 imagevies 在同一个活动中吗?内部覆盖 OnBakcPressed 清除 Webview(甚至设置为不可见)并将图像设置为可见
-
是的,他们在同一个活动中。和 nr4bt,我没有尝试这样做,因为那会加载网页。我想加载点击图片时引导到网页的 4 张图片。
标签: java android android-layout webview