我的代码存在问题,我不确定我编写程序的方式是否是编写代码的最佳方式。
切入追逐..
在我的应用的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个图像已加载到webview上。用户可以单击其中一个图像,它将把用户带到4个不同网站中的一个,每个图像对应一个不同的网址。
在此应用程序中,我正在覆盖public void onBackPressed()
现在问题就出现了。
当用户浏览网页并拥有“历史记录”(所有这些都在网页浏览中处理)时,意味着用户可以点击返回,它会一直回到页面的开头,直到用户所在的位置当他们点击其中一个图片时开始..但它不会回到程序最初开始的视图..这意味着当用户在我的webview中浏览页面并且他们点击后退按钮时,它会走得最远回到是网页的开头。
我希望它回到应用程序的开头,其中4个图像出现在屏幕上,用户可以点击不同的图像(即选择不同的网页)。
我尝试了什么
为了解决这个问题,我假设我会尝试创造一个条件。如果网页无法再返回,则方法会再次调用setContentView(R.layout.activity_main)
。
这只能解决一个大问题。当布局加载时,所有4个图像都不响应任何类型的点击,即使按下后退按钮,应用程序也不会退出。
不会抛出任何异常,也不会发生崩溃。
什么是我的问题的好方法?
如果需要,我可以发布代码。
答案 0 :(得分:1)
((WebView)findViewById(R.id.yourwebviewId)).loadUrl(Url);
//or
((WebView)findViewById(R.id.yourwebviewId)).loadData(yourhtmlstring, "text/html", "UTF-8");
//or safer
WebView web=(WebView)findViewById(R.id.yourwebviewId);
if(web!=null) web.LoadUrl(..)
有关webview方法的更多信息,请查看android documentation
假设您只想创建webviewapp。这是一个很好的教程 WebView-based Applications
答案 1 :(得分:0)
问题是您正在将主要活动的布局加载到webview中。
您要做的是导航回主要活动。
只需调用finish()而不是setContentView()即可。