Android設(shè)計(jì)天氣表,word文檔里是整個(gè)設(shè)計(jì)說明書。
目錄 1、需求分析 2、總體設(shè)計(jì) 3、詳細(xì)設(shè)計(jì) 3.1、開始界面 3.2、主界面 3.3、添加界面 3.4、顯示界面 3.5、編輯界面 3.6、周顯示界面 4、程序運(yùn)行結(jié)果測試與分析
1、需求分析走進(jìn)大學(xué),上課的方式和地點(diǎn)都和以前的高中不一樣了。鑒于大學(xué)上課教室分散,學(xué)生經(jīng)常會(huì)忘記自己的或是上課的教室。這在一定程度上促進(jìn)學(xué)生課表軟件的開發(fā)。使其可以幫助學(xué)生記錄自己的和對自己的掌握。因?yàn)槭謾C(jī)相對筆記本電腦更加具有便攜性,可以隨時(shí)隨地的打開并使用它。相對于筆記本電腦的開機(jī)并打開軟件所用的時(shí)間,其需要的時(shí)間更短,所以手機(jī)端的學(xué)生課表備受學(xué)生用戶的青睞。 該款軟件就是基于Android平臺(tái)開發(fā)的一款學(xué)生課表軟件。當(dāng)學(xué)生上課途中卻不知道教室地點(diǎn)的時(shí)候,大多數(shù)人選擇發(fā)短信或者打電話詢問同學(xué)。這對學(xué)生的造成了一定的花費(fèi)。通過這款軟件完全避免了這些不必要的開銷。而且通過手機(jī)管理課表也是目前比較流行的方式,也具備實(shí)用、方便和免費(fèi)等優(yōu)點(diǎn)。開發(fā)這樣一個(gè)學(xué)生課表軟件,涉及到的技術(shù)不會(huì)太多,用到的主要技術(shù)就是Sqlite數(shù)據(jù)庫編程、適配器的運(yùn)用、Android XML的布局和UI特效以及對Android各種組件的運(yùn)用。開發(fā)采用Android SDK與Eclipse開發(fā)的插件ADT,數(shù)據(jù)庫采用Android自帶的Sqlite數(shù)據(jù)庫 所有我們要開發(fā)一個(gè)可查看自己學(xué)期的課表,并添加了天氣預(yù)報(bào)的功能 通過分析得出,其要實(shí)現(xiàn)的功能為: 1.天氣表主界面:可在該界面中查看天氣、城市、。 2.添加界面:可在該界面中添加。 3.點(diǎn)擊查看界面:可在該界面中查看所添加的。 4.編輯界面:可在該界面中修改所添加的。 5.整周界面:查看每一周的。 6.Widget界面。 2、總體設(shè)計(jì)(1)總體設(shè)計(jì)思路: 根據(jù)該問題的需求,需要在程序中建立五個(gè)界面:天氣表主界面、添加界面、查看界面、編輯界面、整周界面。以及一個(gè)可在手機(jī)上桌面上建立一個(gè)4×4的小插件的Widget界面。各界面主要功能: 1.天氣表主界面:可在該界面中查看天氣,城市等信息,還需可查看每周每天的。 2.添加界面:可在該界面中添加名稱、教師姓名、上課地點(diǎn)、上課節(jié)數(shù)、上課周數(shù)、上課星期。 3.點(diǎn)擊查看界面:可在該界面中查看所添加的名稱、教師姓名、上課地點(diǎn)、上課節(jié)數(shù)、上課周數(shù)、上課星期。 4.編輯界面:可在該界面中修改所添加的名稱、教師姓名、上課地點(diǎn)、上課節(jié)數(shù)、上課周數(shù)、上課星期。 5.整周界面:可在該界面中調(diào)整軟件的背景,查看每一周的。 6.Widget界面:需要在手機(jī)桌面上建立一個(gè)4×4的小插件。
(2)系統(tǒng)模塊圖: 3、詳細(xì)設(shè)計(jì)3.1、開始界面設(shè)計(jì)思路:首先創(chuàng)建一個(gè)開始界面another,使用LinearLaout布局,在該界面可設(shè)置開始時(shí)間,并使用SQLite數(shù)據(jù)庫創(chuàng)建cource表用來存放和開始時(shí)間。給下一步按鈕添加事件,點(diǎn)擊進(jìn)入主界面。 開始界面模塊圖: 3.1開始界面模塊圖 流程圖
部分代碼: public static String StringData(){ final Calendar c = Calendar.getInstance(); c.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); mYear = String.valueOf(c.get(Calendar.YEAR)); // 獲取當(dāng)前年份 mMonth = String.valueOf(c.get(Calendar.MONTH) + 1);// 獲取當(dāng)前月份 mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 獲取當(dāng)前月份的日期號(hào) mHour=(c.get(Calendar.HOUR_OF_DAY)<10?"0":"")+String.valueOf(c.get(Calendar.HOUR_OF_DAY)); mMinute=(c.get(Calendar.MINUTE)<10?"0":"")+String.valueOf(c.get(Calendar.MINUTE)); return mYear + "年" + mMonth + "月" + mDay+"日 \t\t"+mHour+":"+mMinute; } 3.2、主界面設(shè)計(jì)思路:創(chuàng)建一個(gè)主界面odd_days,使用LinearLayout布局,在該界面顯示城市,從獲取當(dāng)?shù)靥鞖獠@示,然后從數(shù)據(jù)庫默認(rèn)顯示當(dāng)天,給周一至周日按鈕添加事件。最后在為添課和整周顯示按鈕分別添加事件。 模塊圖:
3.2 主界面模塊圖 部分代碼: public void onClick(DialogInterface dialog, int which) { index=which; city.setText(cities[which]); msg=city.getText().toString(); Intent intents = new Intent("wyf.action.city"); intents.putExtra("ccity", msg); OddDaysActivity.this.sendBroadcast(intents); try{ initThread();//從網(wǎng)絡(luò)獲取天氣信息 }catch(Exception e){ e.printStackTrace(); } dialog.dismiss(); } }) .setNegativeButton("取消", null) .show(); } 3.3、添加界面設(shè)計(jì)思路:創(chuàng)建添加界面addcource_activity,使用TextView顯示添加的的信息,并在EditText中輸入需要添加的信息,并給添加按鈕設(shè)置事件,當(dāng)添加的不存在并且每項(xiàng)內(nèi)容不為空,添加此到數(shù)據(jù)庫提示添加成功。當(dāng)添加的存在并且有一項(xiàng)內(nèi)容為空,就提示添加的不符合要求,請重新添加! 模塊圖:  3.3添加界面模塊圖 部分代碼: if(SQLiteUtil.QueryCourseIfExist(insertCourse[0])||((!insertCourse[0].trim().equals(""))&& (!insertCourse[1].trim().equals(""))&&(!insertCourse[2].trim().equals("")))){ SQLiteUtil.insertCourceMess(insertCourse);//添加此進(jìn)數(shù)據(jù)庫 bb1=true; } insertTime=new String[3];//獲得時(shí)間新型 insertTime[0]=et4.getText().toString(); insertTime[1]=Constant.editText; insertTime[2]=et6.getText().toString(); if(insertTime[0].trim().equals("請輸入上課節(jié)數(shù)")||insertTime[1].trim().equals("請輸入上課周數(shù)")|| insertTime[2].trim().equals("請輸入上課星期")||insertTime[0].trim().equals("")|| insertTime[1].trim().equals("")||insertTime[2].trim().equals(""){ Toast.makeText(AddCourseActivity.this, "添加的不符合要求,請重新添加!", Toast.LENGTH_SHORT).show(); bb2=false; } 3.4、顯示界面設(shè)計(jì)思路:創(chuàng)建顯示界面odd_list_selected,使用LinearLayout布局,并從數(shù)據(jù)庫讀取的信息后使用TextView顯示。為返回,編輯和刪除本節(jié)課按鈕添加事件。點(diǎn)擊刪除本節(jié)課,從數(shù)據(jù)庫刪除。 模塊圖:  3.4顯示界面模塊圖 從 部分代碼: value=bundle.getString("info"); names=value.split("<#>"); Constant.showWeeks=AddCourseActivity.DivideString(names[4]); title.setText(names[0]);//標(biāo)題 tv1.append(": "+names[0]);//名稱 tv2.append(": "+names[1]);//教師 tv3.append(": "+names[2]);//地點(diǎn) tv4.append(": "+names[3]);//節(jié)數(shù) tv5.append(": "+Constant.showWeeks);//周數(shù) tv6.append(": "+names[5]);//星期
3.5、編輯界面設(shè)計(jì)思路:創(chuàng)建編輯界面edit_course,使用使用LinearLayout布局,,使用TextView顯示編輯的的屬性,先在中EditText顯示沒有改變的,在輸入需要編輯的的信息。為確定按鈕添加事件,點(diǎn)擊后將數(shù)據(jù)存入數(shù)據(jù)庫并提示此已經(jīng)更新。 模塊圖:  3.5 編輯界面模塊圖 部分代碼: new OnClickListener() { public void onClick(View v) { updateMess[0]=et1.getText().toString(); updateMess[1]=et2.getText().toString(); updateMess[2]=et3.getText().toString();
updateTime[0]=et4.getText().toString(); updateTime[1]=Constant.editText; updateTime[2]=et6.getText().toString(); SQLiteUtil.ReSetCource(firstName,updateMess,updateTime); Toast.makeText(EditCourseActivity.this, "此已經(jīng)更新!", Toast.LENGTH_SHORT).show(); MondayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期一")); TuesdayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期二")); WednesdayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期三")); ThursdayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期四")); FridayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期五")); SaturdayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期六")); SundayActivity.listview.setAdapter(new MyBaseAdapter(context,"星期日"));}}); 3.6、周顯示界面設(shè)計(jì)思路:創(chuàng)建整周顯示whole_week,使用LinearLayout布局,在界面中創(chuàng)建一個(gè)Spinner,選擇顯示那一周的,并使用ListView,顯示整周的。  模塊圖: 3.6周顯示界面模塊圖 部分代碼: oddDays=(Button)this.findViewById(R.id.odddays); //監(jiān)聽,切換到整周 oddDays.setOnClickListener( new OnClickListener() { public void onClick(View v) { Intent intent=new Intent(); intent.setClass(WholeWeekActivity.this, OddDaysActivity.class); WholeWeekActivity.this.startActivity(intent); } } 4、程序運(yùn)行結(jié)果測試與分析程序調(diào)試完畢后,在手機(jī)上開始運(yùn)行程序。 
點(diǎn)擊天氣表程序圖標(biāo),將進(jìn)入如圖4.1所示界面。 圖4.1 程序開始運(yùn)行圖
在進(jìn)入開始界面后,選擇好你開始的時(shí)間,然后點(diǎn)擊下一步,進(jìn)入程序的主界面,如圖4.2所示。主界面中可查看當(dāng)?shù)爻鞘刑鞖猓彤?dāng)天。 圖4.2程序主界面

在程序主界面中如果你想查看其他周的,可以點(diǎn)擊中間的第一周下拉按鈕如圖4.3所示,在下拉列表中你可選擇你所想要查看的周次。 圖4.3 周次選擇
在程序主界面中如你想查看本周所有,可點(diǎn)擊整周按鈕,將進(jìn)入圖4.4所示界面,在該界面中你可以查看本周星期一到星期五的所有。 
圖4.4 整周顯示界面

若是想添加屬于自己的,可在主界面中點(diǎn)擊添課按鈕,將進(jìn)入如圖4.5所示界面,在該界面中你可以添加名稱、老師、地點(diǎn)、節(jié)數(shù)、周數(shù)、星期等屬性。添加完成屬性以后點(diǎn)擊確認(rèn)按鈕,則該建立完畢。 圖4.5 添加界面
若想查看異界的詳細(xì)信息,可以點(diǎn)擊該,將進(jìn)入查看界面如圖4.6所示,改界面中會(huì)將的所有屬性顯示在屏幕上。
圖4.6 查看界面

在查看界面,你可以刪除本節(jié),只需點(diǎn)擊刪除本節(jié)課即可,若想修改屬性,可點(diǎn)擊編輯按鈕,進(jìn)入編輯界面如圖4.7所示,在該界面你可重新輸入屬性。完成輸入后點(diǎn)擊確認(rèn)按鈕,則修改完畢。 圖4.7 編輯界面

若想修改程序的背景皮膚,可在整周顯示界面,點(diǎn)擊皮膚按鈕如圖4.8所示,可選擇所喜歡的背景,進(jìn)行更換。更換背景后如圖4.9所示。 圖4.8 換膚界面 圖4.9 換膚后界面
5、結(jié)論與心得本次設(shè)計(jì)是一個(gè)基于 Android的天氣表設(shè)計(jì),完成這個(gè)項(xiàng)目之后,以前覺得復(fù)雜的布局文件,現(xiàn)在變得簡單易懂。從之前面對一個(gè)項(xiàng)目的無從下手,到現(xiàn)在一步步的分析項(xiàng)目。實(shí)踐檢驗(yàn)問題,在做項(xiàng)目中,一點(diǎn)點(diǎn)理清上課時(shí)模糊不清的知識(shí)點(diǎn)。提高了自己對編程的興趣也加深了對所學(xué)知識(shí)的理解。鞏固了listview的使用。 還有就是SQLite數(shù)據(jù)庫的使用,比如將數(shù)據(jù)存入數(shù)據(jù)庫,讀取數(shù)據(jù)庫中數(shù)據(jù)等。 我學(xué)會(huì)了有目的的去學(xué)習(xí)一些將要用到的東西,仔細(xì)地考慮工作流程的規(guī)律和步驟,充分利用手中的開發(fā)工具,利用其所具備的功能,盡量使自己的開發(fā)在代碼上實(shí)現(xiàn)少而精確、讓用戶能夠盡量簡單地進(jìn)行操作。但是在檢測過程中,還是出現(xiàn)了很多的不足之處,這些都是要在今后的工作中需要努力改進(jìn)和完善的。期間我學(xué)到了非常多的andrio專業(yè)知識(shí),體會(huì)了其中的樂趣,當(dāng)我自己解決問題,運(yùn)行成功時(shí),那種成就感,非常的好。我對andrio充滿了興趣。于個(gè)人而言,在程序設(shè)計(jì)的過程中,我深感“認(rèn)真嚴(yán)謹(jǐn)”這個(gè)詞的重要性,一點(diǎn)點(diǎn)小的馬虎,便會(huì)導(dǎo)致整個(gè)程序不能正常運(yùn)行。在今后的學(xué)習(xí)中,我定將“認(rèn)真嚴(yán)謹(jǐn)”時(shí)刻作為自的謹(jǐn)言。與此同時(shí),我們小組成員的互幫互助,讓我體會(huì)到了團(tuán)結(jié)的力量,而更讓人難以忘懷的是在熱烈討論問題時(shí),那激情橫溢的場面。這次設(shè)計(jì)本來是純粹的Android端的開發(fā),但是進(jìn)入這樣的開發(fā)一段時(shí)間之后,我就感覺到這個(gè)的魅力所在。通過這次的設(shè)計(jì)親切的感受到Android開發(fā)的魅力。我現(xiàn)在對這門課真的很感興趣,如果這樣的開發(fā)多了我相信以后的經(jīng)驗(yàn)的積累會(huì)更快。但是這次設(shè)計(jì)里也是有很多不懂的問題,這樣其實(shí)也就是按部就班的進(jìn)行開發(fā),對于一些技術(shù)還掌握不到位,說明自己的功底以及相應(yīng)知識(shí)還是不熟,欠練。這次設(shè)計(jì)是我自己選的素材,也是我想要追尋的方向,雖然不能達(dá)到像工程師那樣熟練,但是起碼給了我自己這樣一個(gè)學(xué)習(xí)方向。互聯(lián)網(wǎng)其實(shí)是現(xiàn)代接觸最為接近的核心網(wǎng)絡(luò)技術(shù)之一,掌握這樣的技術(shù)無論是以后找工作,還是以想開發(fā)自己想要的服務(wù)都是一個(gè)莫大的幫助。我現(xiàn)在正在往這方面進(jìn)行發(fā)展,等到學(xué)好這門技術(shù)我希望能開發(fā)出一個(gè)完全屬于自己的項(xiàng)目。總之,此次設(shè)計(jì)在我的學(xué)習(xí)生涯中啟上了至關(guān)重要的作用
以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便大家保存):
Android天氣課程表.docx
(731.91 KB, 下載次數(shù): 39)
2019-6-19 08:22 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
為防止有人照抄,代碼包暫不提供
|