我的应用程序有问题.它正确地通过时间表系统中的所有形式并显示时间表,然而当我旋转屏幕以查看横向或纵向视图时,它会回到第一个屏幕,我无法弄清楚为什么…提前感谢任何帮助!
package com.timetable;import java.io.fileOutputStream;import java.io.IOException; import org.Jsoup.Jsoup; import org.Jsoup.nodes.document; import org.Jsoup.nodes.Element; import org.Jsoup.select.Elements; import androID.app.Activity; import androID.graphics.Bitmap; import androID.graphics.Canvas; import androID.graphics.Picture; import androID.os.Bundle; import androID.vIEw.KeyEvent; import androID.vIEw.Window; import androID.webkit.WebChromeClIEnt; import androID.webkit.WebVIEw; import androID.webkit.WebVIEwClIEnt; public class Timetable extends Activity { WebVIEw mWebVIEw; //int count = 0; String HTML = "<HTML><body>"; String HTML2 = "<HTML><body>"; document docs; document docs2; public String text(String HTMLrec) { try { docs2 = Jsoup.connect(HTMLrec).get(); } catch (IOException e) { e.printstacktrace(); } Elements data = docs2.getElementsByClass("timetables"); HTML2 += data.toString()+ "</body></HTML>"; return HTML2; } public voID main(String... args) { try { docs = Jsoup.connect("http://www.dcu.IE/timetables/search.sHTML").get(); } catch (IOException e) { e.printstacktrace(); } Elements table = docs.getElementsByClass("timetables"); HTML += table.toString() + "</body></HTML>"; } public voID onCreate(Bundle savedInstanceState) { main(); super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); getwindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBIliTY_ON); mWebVIEw = (WebVIEw) findVIEwByID(R.ID.webvIEw); mWebVIEw.setWebVIEwClIEnt(new TimeClIEnt()); mWebVIEw.getSettings().setJavaScriptCanopenwindowsautomatically(true); mWebVIEw.setClickable(true); mWebVIEw.requestFocus(); mWebVIEw.setinitialScale(1); //mWebVIEw.getSettings().setBlockNetworkLoads(true); mWebVIEw.getSettings().setSupportZoom(true); mWebVIEw.getSettings().setJavaScriptEnabled(true); mWebVIEw.getSettings().setDomStorageEnabled(true); mWebVIEw.loadDataWithBaseURL("http://www.dcu.IE/timetables/",HTML, "text/HTML", "utf-8","http://www.dcu.IE/timetables/"); final Activity MyActivity = this; mWebVIEw.setWebChromeClIEnt(new WebChromeClIEnt() { public voID onProgressChanged(WebVIEw vIEw, int progress) { //Make the bar disappear after URL is loaded, and changes string to Loading... MyActivity.setTitle("Loading..."); MyActivity.setProgress(progress * 100); //Make the bar disappear after URL is loaded // Return the app name after finish loading if(progress == 100) MyActivity.setTitle(R.string.app_name); } }); } public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebVIEw.canGoBack()) { mWebVIEw.goBack(); return true; } return super.onKeyDown(keyCode, event); } private class TimeClIEnt extends WebVIEwClIEnt { public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw, String url) { if (vIEw.canGoBack() == false) //if (count == 0) { String newUrl = text(url); vIEw.loadDataWithBaseURL("http://www.dcu.IE/timetables/",newUrl, "text/HTML", "utf-8","http://www.dcu.IE/timetables/"); // count++; } else { vIEw.loadUrl(url); Picture picture = vIEw.capturePicture(); Bitmap b = Bitmap.createBitmap( picture.getWIDth(),picture.getHeight(), Bitmap.Config.ARGB_8888); Canvas c = new Canvas( b ); picture.draw( c ); fileOutputStream fos = null; try { fos = new fileOutputStream( "/sd/dcu" + System.currentTimeMillis() + ".jpg" ); if ( fos != null ) { b.compress(Bitmap.CompressFormat.JPEG, 90, fos ); fos.close(); } } catch( Exception e ) { } } return true; } }}
解决方法:
发生的事情是,当您更改方向时,活动将被销毁并重新创建.为避免破坏和重新创建活动,请执行以下 *** 作:
androID:configChanges="orIEntation|keyboardHIDden|keyboard"
作为AndroIDManifest.xml中活动的属性.
总结以上是内存溢出为你收集整理的Android屏幕旋转问题全部内容,希望文章能够帮你解决Android屏幕旋转问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)