安卓天氣預報課程設計_第1頁
安卓天氣預報課程設計_第2頁
安卓天氣預報課程設計_第3頁
安卓天氣預報課程設計_第4頁
安卓天氣預報課程設計_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

石家莊鐵道大學Android系統(tǒng)課程設計報告2023年夏季學期題目:基于Android的天氣預報開發(fā)學院:電氣與電子工程學院專業(yè):電子信息工程學生姓名:學號:指導教師:完成日期:2023年7月15日評分表工程號一二三總分滿分255025100得分評閱人說明:工程一,考察程序運行情況。工程二,考察完成情況包括功能完整性,工作量,界面,用戶體驗等。工程三,考察課程設計報告的格式和完整性。摘要隨著移動通信技術的開展和無線數(shù)據業(yè)務的進步,已被賦予了除通話以外的其它許多功能。全新的軟件領域已逐漸聚焦了眾多軟件開發(fā)商的目光,軟件開發(fā)者和軟件用戶將共同面臨這個振奮人心的新境界。本設計使用Android設計技術開發(fā)了一種運用在Android系統(tǒng)上的天氣預報軟件系統(tǒng),本系統(tǒng)通過選擇城市來獲得天氣,風向,風向,溫度等信息。基于的天氣預報系統(tǒng)軟件可以使用戶對于各地的天氣情況的實時掌握,極大的方便了用戶的出行和行程安排,防止了不必要的麻煩,具有很強的實用性。關鍵詞:Android;天氣預報軟件。目錄第1章緒論11.1課題研究內容11.2課題研究的目的和意義11.3課題研究前景2第2章系統(tǒng)需求分析32.1系統(tǒng)功能需求32.2系統(tǒng)流程圖32.3系統(tǒng)界面需求42.4系統(tǒng)性能需求4第3章詳細設計和功能實現(xiàn)53.1界面的設計53.1.1歡送界面設計53.1.2菜單界面設計63.2各模塊詳細設計63.2.1歡送模塊設計63.2.1主工程設計7第4章軟件測試154.1電腦模擬器測試154.2端測試17第5章總結與展望185.1總結185.2缺乏與展望18參考文獻19附錄20重要程序118重要程序218一、緒論Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能和平板電腦,由Google公司和開放聯(lián)盟領導及開發(fā)。Android操作系統(tǒng)最初由AndyRubin開發(fā),主要支持。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運商組建開放聯(lián)盟共同研發(fā)改進Android系統(tǒng)。隨后Google以Apache開源許可證的授權方式,發(fā)布了Android的源代碼。第一部Android智能發(fā)布于2023年10月。Android逐漸擴展到平板電腦及其他領域上,如電視、數(shù)碼相機、游戲機等。2023年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2023年11月數(shù)據顯示,Android占據全球智能操作系統(tǒng)市場76%的份額,中國市場占有率為90%。2023年09月24日谷歌開發(fā)的操作系統(tǒng)Android在迎來了5歲生日,全世界采用這款系統(tǒng)的設備數(shù)量已經到達10億臺。1.1課題研究內容本課題研究的是基于Android平臺下的天氣軟件,目的是使用戶能隨時隨地的查詢天氣信息及天氣變化情況,讓生活更加舒適方便。本文講述Android平臺下天氣軟件的界面設計以及數(shù)據的獲取和解析,主要包括界面的實現(xiàn),控件的使用,界面的布局和數(shù)據處理等內容,結合中國氣象網的天氣數(shù)據,將準確的天氣情況以友好的方式呈現(xiàn)給用戶,使用戶更加賞心悅目的體驗本軟件的效勞。通過對界面的布局及控件的應用等相關內容的學習,使我們對Android平臺下界面開發(fā)工作有一個初步的了解,并且經過這次開發(fā)過程,能夠根本掌握這些內容。1.2研究目的和意義天氣軟件是一種非常實用的信息效勞,隨著智能的不斷普及,各種智能平臺下都有各種各樣的天氣軟件。Android作為現(xiàn)在主流的智能之一,自然也需要這方面的軟件。天氣關系到人們的日常生活,如告知溫暖,方便出行等。一款簡單實用的天氣軟件會很吸引用戶。基于Android平臺的天氣軟件已經有很多,經過分析,用戶第一眼往往是一個軟件的外觀,一個好看的界面才能讓用戶以一種愛美之心去嘗試,才能進一步了解一個軟件的好壞,所以吸引眼球的界面是爭取用戶的第一步。因此,界面設計工作對應用程序來說非常重要,在界面上吸引了用戶,才能進一步讓用戶體驗應用程序中的功能,使用這個軟件。1.3研究前景Android最吸引人的特點是開源特性,因其開源,允許所有人對其代碼進行開發(fā)和修改,同時又由于其代碼的簡單易學性,Android在全世界擁有眾多的粉絲。Android在中國的前景十分廣闊,首先是有成熟的消費者,在國內,Android社區(qū)十分紅火,這些社區(qū)為Android在中國的普及做了很好的推廣作用。國內廠商和運營商也紛紛參加了Android陣營,包括中國移動,中國聯(lián)通,中興通訊,華為通訊,聯(lián)想等大企業(yè),同時不僅僅局限于,國內廠家也陸續(xù)推出了采用Android系統(tǒng)的產品,我們可以預見Android將會被廣泛應用在國產智能上網設備上,將進一步擴大Android系統(tǒng)的應用范圍。Android采用了軟件層〔Softwarestack〕的構架,主要分為三個局部。底層以Linux為內核作為根底,由C語言開發(fā),只提供根底功能,中間層次包話函數(shù)庫和虛擬機,由C++開發(fā)。最上層是各種應用軟件,包話通話程序,短信程序。應用軟件可以由各公司或個人自行開發(fā),以JAVA編寫。二、系統(tǒng)需求分析2.1系統(tǒng)功能需求1.可以羅列出全國所有的省市縣。2.可以查看全國任意城市的天氣信息3.可以自由的切換程式去查看其他城市的天氣4.提供手動更新以及后臺自動更新天氣的功能2.2系統(tǒng)流程圖圖2.1系統(tǒng)流程圖2.3系統(tǒng)界面需求根據應用程序的功能需要,對用戶界面做如下分析:實時天氣界面:顯示城市當前的實時天氣狀況,包括城市名稱、城市名片、天氣情況、溫度上下、星期等信息。界面左邊有一列城市列表,顯示中國各個城市名稱,當用戶想知道哪個城市的天氣情況時,點擊這個城市名就可以獲取天氣狀況,考慮到使軟件占用盡量小的內存,軟件去掉了不必要的花哨,顯示城市名稱,城市名片,溫度和天氣情況,同時對未來6天的天氣情況簡要描述,簡要顯示星期、天氣描述、溫度上下等數(shù)據,使用戶一目了然,使人們及時了解天氣變化,對日常生活出行、穿衣做好準備。2.4系統(tǒng)性能需求1.應用程序能根據中國天氣網接口返回的數(shù)據準確的顯示地區(qū)天氣信息。2.應用程序響應時間應在人的感覺和視覺范圍內,系統(tǒng)響應時間足夠迅速。3.應用程序在android4.0及以上版本運行時,應具有適應能力,能穩(wěn)定運行。4.應用程序操作界面簡單明了,易于操作。三、詳細設計和功能實現(xiàn)3.1界面的設計3.1.1歡送界面的設計歡送界面,采用簡潔明了的布局,添加了一個button點擊事件,點擊即可跳轉到主界面即省份選擇菜單。如圖3.1所示圖3.1歡送界面3.1.2菜單界面設計菜單界面菜單界面采用列向布局和子菜單。這樣直觀明了,簡潔清晰。〔當為省份時標題欄顯示中國〕,省份,城市。如圖3.2所示3.2ab注:a為省份菜單,b為市級菜單3.2各模塊詳細設計3.2.1歡送模塊設計1.新建一個WelcomeActivity類,并讓它繼承Activity類。任何活動都應該重寫onCreate()方法。publicclassWelcomeActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);}}2.新建一個布局文件,命名為welcome_layout,根元素選擇為LinearLayout。創(chuàng)立成功后,再LinearLayout下添加背景添加語句:android:background="@drawable/b"添加一個按鈕,用于點擊事件的觸發(fā):<Buttonandroid:id="@+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="點擊查詢天氣"/>在WelcomeActivity里,關聯(lián)布局文件和實例化button.然后添加onClick,構造出一個intent,傳入WelcomeActivity上下文,傳入ChooseAreaActivity.class為目標活動。即在WelcomeActivity這個活動的根底上翻開ChooseAreaActivity這個活動。然后通過startActivity()方法來執(zhí)行這個intent。setContentView(R.layout.welcome_layout);Buttonbutton1=(Button)findViewById(R.id.button1);button1.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){Intentintent=newIntent(WelcomeActivity.this,ChooseAreaActivity.class);startActivity(intent);3.2.2主工程設計第一階段1.新建工程命名為coolweather。為了讓工程有更好的結構。需要在com.coolweather.app包下再新建一個包,如圖3.3所示。圖3.3新建包構架其中activity包用于存放所有活動代碼,db包用于存放所有數(shù)據庫相關的代碼,model包用于存放所有模型相關的代碼,receiver包用于存放所有播送相關的代碼,service包用于存放所有效勞相關的代碼,util包用于存放所有工具相關的代碼。2.創(chuàng)立數(shù)據庫和表,這樣從效勞器獲取的數(shù)據才能夠存儲到本地。表的設計這里建立三張表,Province,City,County,分別用于存放省,市,縣的各種數(shù)據信息,三張表的建表語句如下〔以county表為例〕County:createtableCounty(idintegerprimarykeyautoincrement,county_nametext,county_codetext,city_idinteger)其中id是自增長主鍵,county_name表示縣名,county_code表示縣級代號,city_id是county表關聯(lián)city表的外鍵。接下來將建表語句寫入到代碼中。在db包下新建CoolWeatherOpenHelper類,用于province,city,county的建表。核心代碼如下所示。publicvoidonCreate(SQLiteDatabasedb){//創(chuàng)立表db.execSQL(CREATE_PROVINCE);db.execSQL(CREATE_CITY);db.execSQL(CREATE_COUNTY);}3.為每張表創(chuàng)立一個對應的實體類。在model下分別新建Province類,city類,county類。實體類非常簡單,根本就是對應字段的get和set方法。類的創(chuàng)立如圖3.4所示。圖3.4實體類4.創(chuàng)立一個CoolWeatherDB類,這個類將會把一些常用的數(shù)據庫操作封裝起來,以方便后面使用。代碼如下所示。定義數(shù)據庫名,版本。將構造方法私有化,實例化數(shù)據庫。保存加載省級、市級、縣級數(shù)據信息從提交的程序中可以看到CoolWeatherDB是一個單例類,這里將它的構造方法私有化,并提供了一個getInstance()方法來獲取CoolWeatherDB的實例,這樣就可以保證全局范圍內只會有一個CoolWeatherDB的實例。在CoolWeatherDB中,提供了六組方法,saveProvince()、loadProvince()、saveCity()、loadCities()、saveCounty()、loadCounties(),分別用于存儲省份數(shù)據、讀取所有省份數(shù)據,存儲城市數(shù)據、讀取某省內所有城市數(shù)據,存儲縣數(shù)據、讀取某市內所有縣的數(shù)據。第二階段1.全國所有的省市縣的數(shù)據都是從效勞器端獲取到的,所以為了使程序具有遍歷全國省市縣的功能,這里和效勞器的交互式必不可少的。所以先在util包下增加一個Util類。因為在Util中使用到了CallbackListener接口來回調效勞返回的結果,因此還需要在util包下添加這個接口。另外由于效勞器返回的省市縣數(shù)據都是“代號|城市,代號|城市,……〞這種格式的,所以要再提供一個工具類來解析和處理這種數(shù)據,。在util包下再新建一個Utility類。在該類中,提供了handlepRrovince()、handleCitiesResponse()、handleCountiesResponse()這三個方法,分別用于解析和處理效勞器返回的省級、市級、縣級數(shù)據。解析的規(guī)那么就是先按逗號分隔,再按單豎線分隔,接著將解析出來的數(shù)據設置到實體類中,最后調用CoolWeatherDB中的三個save()方法將數(shù)據存儲到相應的表中。兩個類和一個接口的創(chuàng)立如圖3.5所示。圖3.5解析數(shù)據工具類2.工具類準備好,開始布局,在res/layout目錄下新建choose_area.xml布局。布局文件中的內容比擬簡單,先是定義一個50dp高的頭布局,并在里面放置了一個TextView用于顯示標題內容。然后在頭布局的下面定義了一個ListView,用于顯示省市縣的數(shù)據。3.編寫用于遍歷省市縣的活動,在activity包下新建ChooseAreaActivity繼承自Activity。該類中的代碼非常多,這里只把邏輯理理。在onCreate()方法中先是獲取到了一些控件的實例,然后去初始化了ArrayAdapter,將它設置為ListView的適配器。之后又去獲取到了CoolWeatherDB的實例,并給ListView設置了點擊事件,到這,初始化工作完成。在onCreate()方法的最后調用了queryProvince()方法,也就是從這里開始加載省級數(shù)據的。queryProvinces()方法的內部會首先調用CoolWeatherDB和loadProvinces()方法來從數(shù)據庫讀取省級數(shù)據。如果讀取到了就直接將數(shù)據顯示到界面上,如果沒有讀取到就調用queryFromServer()方法從效勞器上查詢數(shù)據。queryFromServer()方法會先根據傳入的參數(shù)來拼裝查詢地址,現(xiàn)在網上有不少免費的天氣預報接口可以實現(xiàn)上述功能,例如新浪天氣,百度天氣的,這里我準備使用中國天氣網提供的API,接口來實現(xiàn)上述功能。比方要想,努力出中國所有的省份,只需訪問如下地址,這里需要注意,如果用瀏覽器直接訪問的話,可能會得到一個錯誤提示。這是因為瀏覽器認為效勞器應該返回一個xml格式的數(shù)據。但實際上效勞器返回的數(shù)據,并不是xml格式所導致的,右鍵查看網頁源碼代碼就可以看到效勞器返回的真是數(shù)據了:效勞器會返回一段文本信息,其中包含了中國所有的省份名稱以及省級代號,如下01|北京,02|上海,03|天津,04|重慶,05|黑龍江,06|吉林,07|遼寧,08|內蒙古,09|河北,10|山西,11|陜西,12|山東,13|新疆,14|西藏,15|青海,16|甘肅,17|寧夏,18|河南,19|江蘇,20|湖北,21|浙江,22|安徽,23|福建,24|江西,25|湖南,26|貴州,27|四川,28|廣東,29|云南,30|廣西,31|海南,32|香港,33|澳門,34|臺灣可以看到北京的代號是01,上海的代號是02,不同省份之間以逗號隔開,省份名稱和省級代號之間用單豎線分隔。要想知道某個省內有哪些城市,比方江蘇的代號是19,那么只要訪問如下地址:這次效勞器返回的數(shù)據如下:190401|蘇州,190402|常熟,190403|張家港,190404|昆山,190405|吳縣東山,190406|吳縣,190407|吳江,190408|太倉通過這種方式,就能把全國所有的省,市,縣,都羅列出來了。那么解決了全國省市縣數(shù)據的獲取,然后就是解決查詢天氣信息的問題。這里原理同上,比方,昆山的縣級代號是190404,那么訪問如下地址:這時效勞器返回的數(shù)據非常簡短:190404|101190404其中后半局部的101190404就是昆山所對應的天氣代號了。這個時候再去訪問查詢天氣接口,將相應的天氣代號填入即可,接口地址如下:這樣效勞器就會把昆山當前的天氣信息以JSON格式返回給我們了,如下所示:{“weatherinfo〞:“city〞:昆山,〞cityid〞:101190404,〞temp1〞:〞21℃〞,〞temp2〞:〞9℃〞,〞weather〞:〞多云轉小雨〞,〞img1〞:〞d1.gif〞,〞img2〞:〞n7.gif〞,〞ptime〞:〞11:00〞}其中city表示城市名,cityid表示城市對應的天氣代號,temp1和temp2表示氣溫是幾度到幾度,weather表示今日天氣信息的描述,img1和img2表示今日天氣對應的圖片,ptime表示天氣發(fā)布的時間。確定了查詢地址之后,接下來就調用Util的sendRequest()方法來向效勞器發(fā)送請求,響應的數(shù)據會回調到onFinish()方法中,然后去調用Utility的handleProvincesResponse()方法牽扯到了UI操作,因此必須要在主線程中調用,這里借助了runOnUiThread()方法來實現(xiàn)從子線程切換到主線程,它的實現(xiàn)原理其實也是基于異步消息處理機制的。現(xiàn)在數(shù)據庫中已經存在了數(shù)據,因此調用queryProvinces()就會直接將數(shù)據顯示到界面上。當你點擊了某個省的時候進入到ListView的onClick()方法中,這個時候會根據當前的級別來判斷是去調用queryCities()方法還是queryCounties()方法,queryCities()方法是去查詢市級數(shù)據,而queryCounties()方法是去查詢縣級數(shù)據,這兩個方法內部的流程和queryProvinces()方法根本相同,不重復說明了。這里重寫onBackPressed()方法來覆蓋默認Back鍵的行為,會根據當前的級別來判斷是返回市級列表、省級列表、還是直接退出。配置androidMainifest.xml文件。為活動添加訪問網絡權限<uses-permissionandroid:name="android.permission.INTERNET"/>現(xiàn)在已經程序已經可以運行。如圖3.6所示。圖3.6省份菜單可以看到,全國所有的省級單位都出來了,繼續(xù)查看市級單位,比方點擊黑龍江如圖3.7所示。圖3.7市級菜單然后再點擊黑河,結果如圖3.8所示。圖3.8縣級菜單這樣第二階段的開發(fā)工作完成。第三階段1.查詢天氣,需要把天氣信息顯示出來。所以要穿件一個新的界面用于顯示。創(chuàng)立weather_layout.xml。在這個布局文件中,并沒有特殊的控件,根本就是使用TextView顯示數(shù)據信息,然后嵌套多層LinearLayout和RelativeLayout來控制TextView的顯示位置。在Utility類中添加幾個方法,用于解析和處理效勞返回的JSON數(shù)據,如下所示其中handleWeatherResponse()方法用于將JSON格式的天氣信息全部解析出來,saveWeatherInfo()方法,用于將這些數(shù)據都存儲到SharedPreferences文件中。在activity包下,新建WeatherActivity繼承自Activity。該活動用于顯示城市名,發(fā)布時間,氣溫,日期等。最后將ChooseAreaActivity和WeatherActivity關聯(lián)。在ChooseAreaActivity中添加代碼:SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(this);if(prefs.getBoolean("city_selected",false)&&!isFromWeatherActivity){Intentintent=newIntent(this,WeatherActivity.class);startActivity(intent);finish();…………elseif(currentLevel==LEVEL_COUNTY){StringcountyCode=countyList.get(index).getCountyCode();Intentintent=newIntent(ChooseAreaActivity.this,WeatherActivity.class);intent.putExtra("county_code",countyCode);startActivity(intent);finish();最后添加切換城市和更新天氣按鈕。運行程序,如圖3.9所示圖3.9北安天氣四、軟件測試4.1電腦模擬器測試軟件編寫完成,對其進行測試,首先將天氣預報系統(tǒng)在電腦模擬環(huán)境下測試的方案,以下是對系統(tǒng)進行測試,在Eclipse的PackageExplorer窗口中用鼠標右鍵選擇weather工程名,在彈出的窗口中選擇"RunAs"→"AndroidApplication"安裝該應用程序到Android模擬器并啟動它,如圖4.1所示。圖4.1啟動模擬器等待模擬器啟動完成軟件的安裝,然后單擊所要查詢的城市名稱列表項,稍等片刻便會顯示出該城市的天氣實況信息。電腦模擬測試結果如圖4.2所示。圖4.2潞城天氣經查詢當?shù)氐奶鞖獍l(fā)現(xiàn)根本一致,所以可以知道軟件獲得的數(shù)據是正確的,說明軟件的可行性根本滿足要求。4.2端測試圖4.3臨武天氣該測試說明開發(fā)的天氣預報軟件可以獨立在Android設備運行,滿足設計要求的獨立性,通過與網絡的數(shù)據比擬,可以發(fā)現(xiàn),天氣預報軟件獲取的數(shù)據與實際的天氣情況非常接近,說明數(shù)據的準確性,實時性;從圖9可以看出,中選擇不同的城市時,軟件可以通過網絡獲取不同城市的天氣信息,說明該天氣預報軟件可以獲取不同城市的氣象信息,滿足設計要求。五、總結與展望5.1總結為期兩周的Android實訓已經結束,在這兩周中我學習了很多,也得到了很多。實訓是把理論與實際結合,通過對理論知識的理解,領悟從而運用到生活實際穩(wěn)固所學的知識,提高對實際生活的認識,積累經驗。在此期間能夠初次體會到實際生產中的種種技能與經驗。完成一項項工程能表達出獨立思考能力。在本次Android天氣預報軟件開發(fā)過程中,我通過學校的圖書館資料和網上查詢,了解了Android的搭建、Intent、Activity、Service等知識。Android環(huán)境搭建的根本工作完成后,本文對界面的控件、布局和美觀方面進行設計,對數(shù)據獲取和解析做了分析,通過模擬器顯示城市名片,實時天氣情況Android生產實習對目前應用現(xiàn)狀進行了分析與比擬,進而研究分析Android平臺的系統(tǒng)架構和組件模型。在此根底上,基于Android平臺設計和開發(fā),實現(xiàn)對android編程的理解與應用,特別是在對于控件的應用和活動的創(chuàng)立有了很深的理解。5.2缺乏和展望這次實習我制作的軟件還是有很多缺乏之處,這個軟件還可以進一步開展,比方“短信預報〞、“新聞模塊〞等功能,如果這些功能都能實現(xiàn)將會對用戶有更多的幫助,使他們的生活更加愉悅和方便。我會繼續(xù)為這個軟件添加功能,直到它成長為一個強大的app。Android智能應用程序的開發(fā)涉及了它的整個體系結構,是一項非常復雜的工程。我要以嚴謹?shù)膽B(tài)度對待它。不驕縱,不菲薄。參考文獻[1].BillPhillips.Android編程權威指南.人民郵電出版社,2023[2].任玉剛.Android開發(fā)藝術探索.電子工業(yè)出版社,2023[3].何紅輝關愛民.Android源碼設計模式解析與實戰(zhàn).人民郵電出版社,2023[4].郝玉龍

.Android程序設計根底.北京交通大學出版社,2023[5].徐宜生.Android群英傳.電子工業(yè)出版社,2023附錄重要程序1protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);isFromWeatherActivity=getIntent().getBooleanExtra("from_weather_activity",false);SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(this);if(prefs.getBoolean("city_selected",false)&&!isFromWeatherActivity){Intentintent=newIntent(this,WeatherActivity.class);startActivity(intent);finish();return;}requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.choose_area);listView=(ListView)findViewById(R.id.list_view);titleText=(TextView)findViewById(R.id.title_text);adapter=newArrayAdapter<String>(this,android.R.layout.simple_list_item_1,dataList);listView.setAdapter(adapter);coolWeatherDB=CoolWeatherDB.getInstance(this);listView.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewview,intindex,longarg3){if(currentLevel==LEVEL_PROVINCE){selectedProvince=provinceList.get(index);queryCitys();}elseif(currentLevel==LEVEL_CITY){selectedCity=cityList.get(index);queryCounty();}elseif(currentLevel==LEVEL_COUNTY){StringcountyCode=countyList.get(index).getCountyCode();Intentintent=newIntent(ChooseAreaActivity.this,WeatherActivity.class);intent.putExtra("county_code",countyCode);startActivity(intent);finish();}}});queryProvince();//加載省級數(shù)據}//查詢全國的省,優(yōu)先從數(shù)據庫查詢,如果沒有查詢到再去效勞器上查詢privatevoidqueryProvince(){provinceList=coolWeatherDB.loadProvince();if(provinceList.size()>0){dataList.clear();for(Provinceprovince:provinceList){dataList.add(province.getProvinceName());}adapter.notifyDataSetChanged();listView.setSelection(0);titleText.setText("中國");currentLevel=LEVEL_PROVINCE;}else{queryFromServer(null,"province");}}重要程序2privatevoidinitViews(){weatherInfoLayout=(LinearLayout)findViewById(R.id.weather_info_layout);cityNameText=(TextView)findViewById(R.id.city_name);publishText=(TextView)findViewById(R.id.publish_text);weatherDespText=(TextView)findViewById(R.id.weather_desp);temp1Text=(TextView)findViewById(R.id.temp1);temp2Text=(TextView)findViewById(R.id.temp2);currentDateText=(TextView)findViewById(R.id.current_date);switchCity=(Button)findViewById(R.id.switch_city);refreshWeather=(Button)findViewById(R.id.refresh_weather);StringcountyCode=getIntent().getStringExtra("county_code");if(!TextUtils.isEmpty(countyCode)){//由縣級代號去查詢天氣publishText.setText("同步中...");weatherInfoLayout.setVisibility(View.INVISIBLE);cityNameText.setVisibility(View.INVISIBLE);queryWeatherCode(countyCode);}else{//沒有縣級代號就直接顯示本地天氣showWeather();}}privatevoidinitEvents(){switchCity.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Intentinte

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論