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

正文內容

計算機科學與技術專業(yè)精品畢業(yè)論文--基于android平臺的天氣軟件開發(fā)設計(編輯修改稿)

2025-12-04 23:06 本頁面
 

【文章內容簡介】 加載界面 草圖 實時天氣頁面:顯示實時詳細天氣情況,主要包括城市名、溫度、天氣描述、風速、發(fā)布時間、溫馨提示以及對應的圖片等詳細天氣信息,還有是否默認為默認城市和未來天氣按鈕,當看到的城市是默認城市時,會提示這是默認城市,當不是默認城市時,這個區(qū)域會顯示為設置默認按鈕,點擊可以設置為默認,下次運行程序后會直接顯示默認城市信息;在這個頁面中設置有菜單,在菜單中給出選擇城市和退出選項;如圖 : 圖 :實時天氣界面草圖 未來天氣頁面:顯示未來六天的天氣信息,考慮到手機界面的原因,這里簡要的給出未來每天的天氣情況,主要 給出天氣變化情況,突出重點,使用戶對未來天氣信 9 息一目了然;如圖 : 圖 :未來天氣界面草圖 選擇城市頁面:選擇要查看的城市名稱,然后搜索;這里可以搜索到全國所有縣級以上城市和地區(qū),總共 2564 個;當輸入錯誤的時候,會給出提示,不存在該地名;搜索到這個城市后,在下方給出連接,點擊后查看;如圖 : 圖 :搜索界面草圖 在每個頁面的下方還應顯示有版權信息,內容為編寫作者和所屬組織,在最后將會統(tǒng)一加入到每個界面中的正下方。 10 數據庫設計 經過分析,可以知道程序中至少需要設置兩張表 cities 和 city, 表 cities 用于存放全國所有城市名稱和獲取天氣數據所對應的城市碼,所以應該有兩個字段存儲它們,表 city 用于存放默認城市的代碼,所以只有一個字段。經過了解,全國共有2564 個縣級以上城市,所以在 cities 表中共有 2564 條記錄,而在 city 表中只有一條記錄,表示如下: 表 : cities 字段名 數據類型 說明 _id Integer 主鍵 code varchar(10) 城市碼 city varchar(10) 城市名 表 : city 字段名 數據類型 說明 _id Integer 主鍵 code varchar(10) 默認城市碼 11 5 系統(tǒng)實現(xiàn) 文件結構介紹 圖 :文件結構圖 如圖 所示,為項目中的文件目錄結構。首先來介紹一下 Android 程序的系統(tǒng)目錄: src 目錄是 java 文件的存放目錄; res 目錄是資源文件存放的目錄,其中,drawable 文件夾中存放圖片, layout 文件夾中存放的是布局文件, values 文件夾存放的是字符串文件,程序中顯示的字符串信息都在這里設置。下面對主要文件進行介紹: :可以理解為整個應用程序的字典,里面存放這大量的靜態(tài)整型常量。這個文件是系統(tǒng)自動生成的,最好不要隨意修改。應用程序中用到的字符串、圖片、布局文件等等都可以在這里找到對應的 id,在使用的時候直接引用對應的 id 即可; :全局配置文件,程序中的 Activity、 Service、 Broadcast,還有權限聲明和其他需要注冊到 Android 系統(tǒng)中的等等應用,都需要在這里聲明過后 12 才能夠正常使用; 以上是對 Android 程序的目錄設置做了一個大概的介紹,針對本項目,包的設置和文件的 存放下面也給出詳解: 表 :包名介紹 包的名稱 說明 存放了 4 個界面類 數據的下載和解析等操作 數據庫操作 實體類 后臺服務 assets 存放數據庫文件 res 資源文件:圖片、布局文件等 相關技術介紹 Activity Activity 是 Android 平臺中非常重要的一個組件,是所有程序的根本,所有程序的流程都運行在 Activity 之中,是 Android 當中最基本的模塊之一。 每一個 Activity 代表著一個界面,它有自己的生命周期,即它的一個產生、運行、銷毀的一個周期,對于 Activity,關鍵是其生命周期的把握,其次就是狀態(tài)的保護和恢復。這個過程官方給出了描述,如圖 所示: 13 圖 : Activity 生命周期 每一個 Activity 本身是一個 Java 文件,在這個 Java 文件里有控件的設置和函數的操作等,但是頁面的布局卻不在 Java 文件中,而是一個 xml 文件,放在 res 目錄的 Layout 文件夾中;每一個 xml 文件稱為一個 Layout 布局文件,在對應的 Java文件中設置應用的是哪個布局文件,每一個 Activity 對應一個布局文件。這里的布局類似于 HTML 中 CSS + DIV 的設計模式,通過設置控件的屬性改變控件的位置和顯示效果,容易實現(xiàn)和調試。 Intent Intent 是將一個要執(zhí)行的動作的抽象的描述,一般來說是作為參數來使用,由Intent 來協(xié)助完成 Android 各個組件之間的通訊。 Intent 負責對應用中一次操作的動 作、動作涉及到的數據、附加數據進行描述, Android 則根據此 Intent 的描述,負責找到對應的組件,將 Intent 傳遞給調用的組件,并完成組件的調用。因此, Intent在這里起著一個媒體中介的作用,專門提供組件互相調用的相關信息,實現(xiàn)調用者與被調用者之間的解耦。 Intent 主要是用來啟動其他 Activity 或者 Service,所以可以將 Intent 理解成 14 Activity 之間的粘合劑。 Intent 的使用具體有以下 3 種形式: 1. 通過 startActivity 方法來啟動一個新的 Activity; 2. 通過 Broadcast Intent 機制可以將一個 Intent 發(fā)送給任何對這個 Intent反省去的 BroadcastReceiver; 3. 通過 startService 或者 bindService 方法來和后臺的 Service 進行交互。 Service Service 也是 Android 系統(tǒng)中一種很重要的組件,它跟 Activity 的級別差不多,但是它不能自己運行,只能后臺運行,并且可以和其他組件進行交互。 Service 執(zhí)行的是沒有界面的長生命周期的代碼。 Service 是一種程序,它可以運行很長時間, 但是它卻沒有用戶界面。 Service 可以再多場合的應用中使用。 SQLite SQLite 數據庫是 Android 平臺內嵌的數據庫,它是一個輕型的關系型數據,提供完整的對關系型數據庫的操作,對 SQLite 的操作和其他關系型數據庫類似,這里簡要介紹一下。 這里是在 Windows 平臺下,首先打開已創(chuàng)建的 Android 虛擬設備,然后打開命令行提示符,輸入 adb shell 命令,切換到 Android 平臺下,進入到創(chuàng)建數據庫的目錄,然后輸入命令 sqlite3 數據庫名,就可以打開對應的 SQLite 數據庫 。接下來就可以進行需要的操作了,不同的是, SQLite 的命令在前面都需要加上一個點,比如查看數據庫中的表: . schema,查看表中所有數據: . select * from table。 等,其他命令與此類似。 這里需要指出的是,在 SQLite 數據庫的每張表中必須有一個字段是類似于 _id 的整型值,設置為主鍵,可自動插入,也可手動添加。有關 SQLite 數據庫的內容就介紹到這里,更多的可以到幫助文檔中查找。 布局及控件介紹 Android 系統(tǒng)中界面布局方式有很多種,有線性布局、相對布局、表格布 局等, 15 布局文件以 xml 文件的形式存放在系統(tǒng)的資源文件夾中,這里只詳細介紹程序中大量用到的線性布局。 線性布局在代碼中表示為 Linearlayout,它是以線性的方式逐個顯示在它內部聲明的控件,布局的方向有垂直和水平兩種,并且可以設置寬高等很多屬性。 在布局當中添加的是控件,下面是對一些常用控件的簡單介紹: TextView:文本顯示域,顯示的信息內容為字符串形式; ImageView:圖片顯示域,顯示的內容為圖片; Button:按鈕,可以設置響應的監(jiān)聽器,執(zhí)行某種操作; EditText:輸入文本框,為用戶提供輸入數據的接口; 控件中的屬性有很多,大體上是類似的,也有個別屬性是特有的,這里不再詳細介紹,在用到的時候可以查閱相關文檔。 這里需要指出的是,不論是控件還是資源文件,在應用程序中用到的時候,都是通過 中的整型值引用的,然后進行對對象進行操作。 城市碼獲取 軟件中用到的天氣數據來自于中國氣象局,這個數據源是免費的,它提供了全國2564 個縣級以上城市的天氣信息,每一個城市對應一個城市碼。在獲取某一城市的天氣數據的時候,就是依據這個城市的城市碼向服務器發(fā)送請求,然后得到對應的天氣數據后返回,在界面中顯示給用戶,所有城市的天氣數據的獲取都依賴于對應的城市碼,所以得到所有的城市名及其城市碼就是重中之重的事情。 獲取城市及其城市碼的地址是 ,后面加上 得到省份編號,然后跟上省份編號 得到地區(qū)編號,再用省份編號 +地區(qū)編號就可以得到這個地區(qū)中所有城市的編號,最后把省份編號 +地區(qū)編號 +城市編號得到的就是城市對應的城市碼,通過鏈接 .html 就可以獲取這個城市的所有天氣數據。這里寫了一個程序來獲取這些數據。 這個程序通過遍歷來得到所有的城市信息。首先下載得到包含城市信息的文本內容,然后再解析這個文本得到城市和編號。遍歷全部數 據后,把結果保存起來。 創(chuàng)建連接,然后讀入數據,最后將得到的內容以字符串的形式返回。下載函數如下: 16 public static String getInfo(String url) { BufferedReader in = null。 String info = 。 try { URL file。 file = new URL(url)。 in = new BufferedReader(new InputStreamReader(()))。 String line。 while ((line = ()) != null) { info = info + line。 } ()。 } catch (Exception e) { ()。 } return info。 } 每次得到的下載內容包含的是一組數據,這組數據包含很多小組數據,每小組數據用一個“ ,”分割,在每小組數據中有城市名和城市編號,它們之間又用一個“ |”分割,對這組 內容進行解析后得到一個包含城市名和城市編號的二維數組,解析函數如下: public static String[][] parseCity(String content){ if(content!=null amp。amp。 ().length()!=0){ StringTokenizer st = new StringTokenizer(content, ,)。 int count = ()。 String[][] citys = new String[count][2]。 int i = 0。 int index = 0。 while(()){ String city = ()。 index = (39。|39。)。 citys[i][0] = (0, index)。 citys[i][1] = (index + 1)。 i = i + 1。 } return citys。 } return null。 } 17 上面介紹的是下載函數和解析函數。具體的獲取過程通過不斷的修改鏈接地址并調用這兩個函數,最后就能夠獲取全部的數據,最后以文本的形式暫時存儲起來。遍歷函數代碼如下: public void doIt() { int init = 0。 String webContent。 String urlPre = // ( // 得到省份或一級直轄市代碼 [代碼 ][名稱 ] webContent = (urlPre + .xml)。 String[][] provinces = (webContent)。 String[] groups = new String[]。 String[][] childs = new String[][]。 String[][] cityCode = new String[][]。 // 開始遍歷 for (int i = 0。 i 。 i++) { // 得到省份名稱 groups[i] = provinces[i][1]。 // 由省份碼得到城市碼的 URL + 01 +.xml StringBuffer urlBuilder = new StringBuffer(urlPre)。 (provinces[i][0])。 (.xml)。 // 得到指定省份或直轄市信息內容 webContent = (())。 // 一個省份內的城市信息 String[][] citys = (webCo
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1