編輯:關於Android編程
謝謝大家對該系列博文的支持與關注,我們現在趁熱打鐵正式開始我們的Android天氣軟件的開發吧!沒有閱讀過之前關於該軟件的功能需求的同學可以先看一下 一起來開發Android的天氣軟件(一),可以先去快速浏覽一下,清楚我們的概要體系。今天我們要做的是搭建Sqlite數據庫,那這個數據庫要存儲哪些信息呢!該數據庫是用來存儲全國的省市縣的一些信息,全國共有34個省比如浙江旗下又有好多的市如杭州、溫州、湖州,杭州下面又有很多區縣,我們要做的就是把這些結構化的數據存儲到我們的數據庫中。
那麼我們現在就開始吧!我們這次使用的是LitePal的開源框架,它采用了對象關系映射(ORM)的模式,並將我們平時開發時最常用到的一些數據庫功能進行了封裝,使得不用編寫一行SQL語句就可以完成各種建表、増刪改查的操作。用起來總之非常的方便,從郭霖大神的博文中學會了解該框架後,我就快速學以致用用到這個天氣軟件的編程中來,Pratiece makes preferct,我們下面就來見識下LitePal的威力!
首先我們先要建立Province,City,County三張表。
1、Province
2、City
3、County
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD48cD48aW1nIHNyYz0="/uploadfile/Collfiles/20141202/20141202081520171.png" alt="\" />
好的,以上這是我們表的結構的廬山真面目,我們會發現每一張表都會有一個id,然後會有相應的province_code,province_name屬性,除此之外呢,city還有一個province_id列,這是一個外鍵列,是為了實現省份表與城市表的一個關聯關系,一個city表裡面存放一個具體的省份id,並且允許多個城市都存放同一個省份id,這樣一個城市就只能對應一個省份,但一個省份卻可以有多個城市,也就實現多對一的關系了!以此類推,county也有一個city_id來實現市與縣的一對多的關系,不知道大家看到這裡都理清楚了沒有我們三張表的關系呢!
我們知道了以上的表結構,我們可以正式進入建表操作了,這邊我在重新簡述一下使用LitePal的使用流程,如果還沒有下載這個Jar包的同學,LitePal開源項目地址:https://github.com/LitePalFramework/LitePal下載一下,首先在自己的程序導入Jar包,在在該項目的assets目錄下面新建一個litepal.xml文件,第三步再在AndroidManifest.xml中配置一下LitePalApplication了,三步就完成了該包的導入過程!
使用LitePal後呢,我們就不用"create table province (" + "id integer primary key autoincrement, " + "province_name varchar, " + "province_code varchar " )";這樣的建表語句了,一切變得很簡單。根據對象關系映射模式的理念,每一張表都應該對應一個模型(Model),也就是說,如果我們需要先建一張Provinces表,就應該有一個對應的Province模型類。需要什麼表建立一個相應的類,裡頭有什麼列就在模型類裡對應怎樣的字段,讓我們看一下!Provinces類!
import java.util.ArrayList; import java.util.List; import org.litepal.crud.DataSupport; public class Province extends DataSupport { private int id; private String province_name; private String province_code; private Listcities = new ArrayList (); public String getProvince_code() { return province_code; } public void setProvince_code(String province_code) { this.province_code = province_code; } public List getCities() { return cities; } public void setCities(List cities) { this.cities = cities; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getProvince_name() { return province_name; } public void setProvince_name(String province_name) { this.province_name = province_name; } }
以上就是我們的Provinces類,我們可以看到該模型類中有id,province_name,provice_code以及cities字段,並且都實現了其中的get set方法,這邊要注意一定要實現getset方法的,要不然建表會失敗的!此外,id屬性可寫可不寫,LitePal都會和人性化的自動生成的,重點在我們這邊有一個CITY的集合,這個是干什麼的呢,就是用來描述一個province對應著多個city,所以建立了一個list集合,那麼在city表又怎麼表示多對一的關系呢!
import java.util.ArrayList; import java.util.List; import org.litepal.crud.DataSupport; public class City extends DataSupport { private int id; private String city_name; private String city_code; private Province province; private Listcounties = new ArrayList (); public List getCounties() { return counties; } public void setCounties(List counties) { this.counties = counties; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCity_name() { return city_name; } public void setCity_name(String city_name) { this.city_name = city_name; } public String getCity_code() { return city_code; } public void setCity_code(String city_code) { this.city_code = city_code; } public Province getProvince() { return province; } public void setProvince(Province province) { this.province = province; } }
同上County表如下就好了!
[java] view plaincopy
[html] view plaincopy
那麼下面問題又來了我們怎麼實現city與Province的表與表之間的關聯關系呢,其實也非常簡單,只要將city對應的province得到,並用set方法構造進入就好了!我們來看一下
[java] view plaincopy下面是該應用的Git開源地址,https://github.com/melhc/SimpleWeather
大多圖片裁剪大多兩種操作:改變裁剪區圖片不能縮放、裁剪區固定圖片縮放,兩種方法都可以裁剪到不同圖片,本次介紹的是可變裁剪區同時能縮放圖片,同時記錄自己的開發項目過程。裁剪
本文實例講述了Android編程實現仿優酷旋轉菜單效果。分享給大家供大家參考,具體如下:首先,看下效果:不好意思,不會制作動態圖片,只好上傳靜態的了,如果誰會,請教教我吧
本文實現初次設置密碼驗證過程,首先實現如下效果布局如下:<?xml version=1.0 encoding=utf-8?><Linea
一、問題描述 上一次我們使用百度地圖實現基本的定位功能,接下來我們繼續實現搜索和定位,並使用LocationOverlay繪制定位位置,同時展示如何使用自定義圖標繪制並