freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android的氣象信息采集系統(tǒng)畢業(yè)論文(已改無錯(cuò)字)

2023-06-30 01:49:23 本頁面
  

【正文】 MenuContorl中的 showUtilListView方法代碼如下: public void showUtilListView() { listView = (ListView) ()。 ...//將幾個(gè)功能的 item添加到 listView中 SimpleAdapter listItemAdapter = new SimpleAdapter(weatherUI, listItem, ,new String[] { ItemText },new int[] { })。 (listItemAdapter)。 } 當(dāng)用戶點(diǎn)擊切換城市的時(shí)候,運(yùn)行 中的 showCityDialog()方法,生成 一個(gè)AlertDialog,填入你想要查詢的城市名,單擊確定就可以查到相應(yīng)的城市四天的信息。如圖 54所示: 54輸入城市對話框 查詢過程是獲得文本框中的數(shù)據(jù),然后將數(shù)據(jù)添加到 url后面, 就可以獲得對應(yīng)城市的 xml文件,對該 xml文件進(jìn)行解析 [14]。與谷歌的 API連接的后臺服務(wù)的核心代碼如下: public class LoadDataService extends Service { public void onStart(Intent intent, int startId) { (intent, startId)。 BaseWeather baseWeather = null。 String city = ().getString(city)。 boolean check = ().getBoolean(check)。 try { if (check) { city = (city)。 } baseWeather = (city)。 } ...//獲取不成功,設(shè)置 MessageCode為 ...//獲取成功,配置該城市的天氣信息,設(shè)置 MessageCode為 } } 以下是 使用 SAX讀取 XML的 文件 , SAX是一個(gè) xml解析器, 它 解析速度快并且占用內(nèi)存少 , 非常適合用于Android等移動(dòng)設(shè)備。 SAX解析 XML文件采用的是事件驅(qū)動(dòng),它 不一定 要解析完整個(gè)文檔,在按內(nèi)容順序解析文檔的過程中, SAX會(huì)判斷當(dāng)前讀到 的字符是否合法 ,是否屬于 XML語法中的某部分,如果符合就會(huì)觸發(fā)相應(yīng)的 事件 [15]。所謂事件,其實(shí)就是一些回調(diào)方法,這些方法 (事件 )定義在 ContentHandler接口。下面 舉 一些 ContentHandler接口 的 常用方法:當(dāng)遇到文檔的開頭的時(shí)候,調(diào)用 startDocument()方法,可以在其中做一些預(yù)處理的工作 , 和上面的方法相對應(yīng) 的 endDocument()方法 ,當(dāng)文檔結(jié)束的時(shí)候,調(diào)用 它 ,可以在其中做一些善后的工作。當(dāng)讀到一個(gè)開始標(biāo)簽的時(shí)候,會(huì)觸發(fā) startElement(String namespaceURI, String localName, String qName, Attributes atts)方法。 namespaceURI表示 命名空間 , localName則是不帶命名空間前綴的標(biāo)簽名, qName則 是帶命名空間前綴的標(biāo)簽名。通過 atts可以得到 當(dāng)前標(biāo)簽下的 所有屬性名和相應(yīng)的值。 要明白 SAX解釋 xml是 流式處理 方式 ,當(dāng)遇到一個(gè)標(biāo)簽的時(shí)候,它并不會(huì)紀(jì)錄下以前所碰到的標(biāo)簽, 所以 ,在 startElement()方法中,所有你所知道的信息,就是標(biāo)簽的名字和屬性,至于標(biāo)簽的嵌套結(jié)構(gòu),上層標(biāo)簽的名字,是否有 子元屬等等其它與結(jié)構(gòu)相關(guān)的信息,都是不得而知的, 這些 都需要你的程序來完成。 endElement(String uri, String localName, String name) 方法和上面的方法相對應(yīng),在遇到結(jié)束標(biāo)簽的時(shí)候, 會(huì) 調(diào)用這個(gè)方法。 : XmlParse()是在調(diào)用 SAX解析器之前對一些值進(jìn)行初始化的。 public XmlParse(){ information=false。 inForcast=false。 baseWeather = new BaseWeather()。 ArrayListWeather weatherList=new ArrayListWeather()。 (weatherList)。 } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException{ ...//重寫了 startElement,實(shí)現(xiàn)對天氣信息的 xml文件的解析。并將解析到的數(shù)據(jù)存儲到 ...//weatherList 中。 } @Override public void endElement(String uri, String localName, String qName) throws SAXException { ...//重寫 endElement方法 } 信息員登錄 選擇信息員登錄,會(huì)彈出一個(gè)登錄的對話框,信息員需要填寫其用戶名及密碼后才能登錄進(jìn)去,默認(rèn)的用戶名 zhangcr,密碼為 123。登錄后顯示如圖 55所示: 圖 55登錄界面 通過讀取 ,獲得其中的信息員帳號及密碼,然后與登錄界面中的兩個(gè)文本框中的數(shù)據(jù)進(jìn)行驗(yàn)證,如果正確則能夠進(jìn)入,否則不可以。 private boolean checkParam() { ...//驗(yàn)證用戶名及密碼,正確返回 true,錯(cuò)誤返回 false } 個(gè)人信息 通過文件 ,包括帳號,密碼,注冊時(shí)間,積分,以及獎(jiǎng)懲情況。如圖 56所示: 圖 56個(gè)人信息 單擊修改菜單,由于其它的信息(密碼在設(shè)置中進(jìn)行修改) 是不可以修改的,因?yàn)檫@些信息是從服務(wù)器端讀取的(這里測試的時(shí)候直接讀取的是 ,若以后有了服務(wù)器端,則可以將服務(wù)器端的數(shù)據(jù)獲取然后存在 。)所以只可以修改自己的簡介。如圖 57所示: 圖 57修改個(gè)人簡介 該功能涉及到的相關(guān)代碼如下: public class EditorContorl { public void showEditDialog() { ...//獲得信息員的信息( user) 生成 Dialog并 對信息進(jìn)行相應(yīng)的操作 new () { @Override public void onClick(DialogInterface dialog,int which) { ...//獲得信息員信息,并顯示 } }).setNegativeButton((),new () { @Override public void onClick(DialogInterface dialog,int which) {}}).show()。 } } 以上代碼段主要是獲得信息員的信息,并生成一個(gè)對話框,將信息元的信息填入對話框中,并允許用戶對個(gè)人簡介這一塊可以自行更改 [9]。 信息反饋 信息員可以將當(dāng)?shù)氐臍庀笮畔⑦M(jìn)行反饋,信息員要反饋的信息可以分為三類。第一類是災(zāi)害信息反饋, 主要包括是什么樣的氣象要素(雪災(zāi),干旱,霜凍等),要素的屬性,以及發(fā)生的時(shí)間,這些都是氣象部門所關(guān)心的,并且希望信息員能夠反饋回去。如圖 58所示: 圖 58災(zāi)害天氣反饋 這里使用了兩個(gè)比較重要 的控件,下拉列表控件( Spinner)和日期選擇控件( DatePicker) [16]。 Spinner下拉列表控件是 View類得一個(gè)子類,每次只顯示用戶選中的元素信息,當(dāng)用戶再次點(diǎn)擊時(shí),會(huì)將來自適配器的元素信息彈出到選擇列表中供用戶選擇。在這里,我實(shí)現(xiàn)了下拉列表框與細(xì)節(jié)描述下的文本框聯(lián)動(dòng)的效果,這樣可以減少信息員的輸入,更加的人性化。日期選擇控件可以更加方便信息員對于日期的錄入,而且對于我們來說可以不用再去檢查日期的格式是否正確。 dialog = new (secondTab).setPositiveButton((), new () { ...//生成災(zāi)害天氣反饋的 Dialog } 當(dāng)信息員點(diǎn)擊到詳細(xì)信息的編輯框時(shí),會(huì)自動(dòng)彈出一個(gè)可編輯的對話框,這樣利于信息員對于信息的添加。這里是實(shí)現(xiàn)了 OnClickListener()這個(gè)方法。實(shí)現(xiàn)代碼如下: (new OnClickListener(){ @Override public void onClick(View v) { ...//彈出一個(gè)可編輯的對話框 })。 災(zāi)情信息統(tǒng)計(jì)是信息員在反饋時(shí)需選擇或編輯以下屬性:時(shí)間、地點(diǎn)、傷亡人數(shù)、財(cái)產(chǎn)損失、來源。界面如圖 59左圖所示,右圖則是信息員可以自己添加一些其它的信息: 圖 59災(zāi)情反饋統(tǒng)計(jì)和其它信息反饋 其實(shí)現(xiàn)方法與以上的對話框?qū)崿F(xiàn)方法類似,這里不再贅述。當(dāng)信息員填寫完相應(yīng)的信息后,這些信息會(huì)顯示在界面上,如圖 510所示: 圖 510信息反饋的內(nèi)容 這時(shí)經(jīng)過信息員確認(rèn)后,通過點(diǎn)擊菜單選擇合并并 發(fā)送短信功能菜單,則可以將信息員反饋的信息發(fā)送給指定的氣象部門。界面顯示如圖 511所示: 圖 511反饋信息的短信發(fā)送 該功能使用了 android自帶的 SMS短信發(fā)送功能,在原有的 SMS上進(jìn)行了一些改動(dòng)。其具體實(shí)現(xiàn)代碼如下: public void showSMSDialog() { ...//SMSdialog 的初始化生,成短信發(fā)送的 Dialog (new () { public void onClick(View arg0) { ...//點(diǎn)擊后執(zhí)行發(fā)送操作 } })。 (new () { public void onClick(View arg0) { ...//點(diǎn)擊后取消 } })。 ()。 (new () { public void onClick(View arg0) { ...//將信息通過短信的方式發(fā)送 } })。 ()。} })。 } private String getMessage() { ...//獲得災(zāi)害天氣信息 } } SendSMSListener 中定義了一個(gè)線程,發(fā)送短信時(shí)會(huì)觸發(fā) sendMessage()方法,如果發(fā)送成功,則會(huì)傳遞一個(gè)布爾型的值 isSuccess,下面定義的 Handler類用于接收 message,如果接收到的 message中的isSuccess值為 true則說明發(fā) 送成功,會(huì)彈出一個(gè)提示框,提示用戶短信發(fā)送成功。如圖 512所示。 Handler handler = new Handler() { @Override public void handleMessage(Message msg) { ...//處理 handler中傳遞來的信息 } }。 private class SendSMSListener extends Thread { @Override public void run() { boolean flag = (().toString(), ...//發(fā)送氣象信息 ...//將 flag的值添加到 handler中 } } WeatherUtil中的 sendSMS方法,負(fù)責(zé)將短信發(fā)送出去。具體實(shí)現(xiàn)如下: public static boolean sendSMS(String number,String message,Activity activity){ SmsManager smsManager = ()。 try{ PendingIntent mPI = (activity, 0, new Intent(), 0)。 (number, null, message, mPI, null)。 }catch(Exception e){ ()。 return false。 } return true。 } 圖 512短信發(fā)送成功提示 培訓(xùn)信息 信息員可以通過此功能訪問氣象部門相關(guān)的網(wǎng)站,并 能夠獲取相關(guān)的培訓(xùn)信息。以便于提高自己的業(yè)務(wù)水平,能夠使信息員提供的氣象信息更精確更有效 [17]。顯示界面如圖 513 所示: 圖 513 培訓(xùn)信息首頁 該功能主要用到了一個(gè) webview這個(gè) android自帶的一個(gè) web瀏覽器。其核心的代碼如下: public void openBrowser(){ (().toString())。 ()。 ()。} 通過調(diào)用 openBrowser()方法,將 url解析成為相對應(yīng)的網(wǎng)頁。單擊菜單按鈕,會(huì)顯示一個(gè) listView,上面實(shí)現(xiàn)了一個(gè)打開另一個(gè)網(wǎng)頁的功能。其具體的實(shí)現(xiàn)方式就是繼承自一個(gè) AlertDialog,然后將輸入的 url傳給瀏覽器。如圖 514 所示: 圖 514 打開網(wǎng)頁功能 手機(jī)定位 系統(tǒng) 還要能夠?qū)崟r(shí)定位信息員的位置,在這里 使 用 GPS定位 [8]。 Android平臺支持提供位置服務(wù)的 API,在開發(fā)過程中主要用到 LocationManager 和 LocationProvider 對象。通過調(diào)用 Service()函數(shù)實(shí)現(xiàn)獲得 LocationManager 對象,獲取到
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1