android(体验一个项目天气预报开发)-0
2017-04-21 16:10
477 查看
写一个app,熟悉一下app开发流程,一个东西学了总会忘记,自己试着搞点东西,当成工作中一点玩的乐趣吧。
首先玩一下GitHub,之前玩了一下现在就剩点印想了,再玩一下。
首先我来注册一个,注册用我的sina邮箱吧,把sina邮箱当成我工作的邮箱,QQ邮箱作为我的一娱乐邮箱,不至于总是搞不清楚那个是那个。
注册好了然后就写始创建项目
代码结构下新建几个包:
activity
db
model:
receiver:包用于存放所有广播接收相关代码
service:包用于存放所有服务相关代码
util:用于存放所胡工具相关代码
项目开发时最开始都有一个需求分析什么的嘛,需求分析最终的结果就是产生了一个数据库表格,android项目用到的数据库是sqlite轻量级的数据库。
我先建一个数据库表来玩玩是这样的:
数据库表建好了,然后就可以就是数据库的操作了,数据库的操作增、删、查、改。。。
可以发现插入数据比较容易看懂:主要用到ContentValue这个类中的 put() t的方法
查询这部份就不是那么的好懂:但用到的也是基本的Cursor类中的 moveToFirst() moveToNext() getInt() getString() getColumnIndex()的一些方法。
首先玩一下GitHub,之前玩了一下现在就剩点印想了,再玩一下。
首先我来注册一个,注册用我的sina邮箱吧,把sina邮箱当成我工作的邮箱,QQ邮箱作为我的一娱乐邮箱,不至于总是搞不清楚那个是那个。
注册好了然后就写始创建项目
代码结构下新建几个包:
activity
db
model:
receiver:包用于存放所有广播接收相关代码
service:包用于存放所有服务相关代码
util:用于存放所胡工具相关代码
项目开发时最开始都有一个需求分析什么的嘛,需求分析最终的结果就是产生了一个数据库表格,android项目用到的数据库是sqlite轻量级的数据库。
我先建一个数据库表来玩玩是这样的:
public class CoolWeatherOpenHelper extends SQLiteOpenHelper { /** * Province表建表语句 */ public static final String CREATE_PROVINCE = "create table Province (" + "id integer primary key autoincrement, " + "province_name text, " + "province_code text)"; /** * City表建表语句 */ public static final String CREATE_CITY = "create table City (" + "id integer primary key autoincrement, " + "city_name text, " + "city_code text, " + "province_id integer)"; /** * County表建表语句 */ public static final String CREATE_COUNTY = "create table County (" + "id integer primary key autoincrement, " + "county_name text, " + "county_code text, " + "city_id integer)"; public CoolWeatherOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_PROVINCE); // 创建Province表 db.execSQL(CREATE_CITY); // 创建City表 db.execSQL(CREATE_COUNTY); // 创建County表 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
数据库表建好了,然后就可以就是数据库的操作了,数据库的操作增、删、查、改。。。
public class CoolWeatherDB { /** * 数据库名 */ public static final String DB_NAME = "cool_weather"; /** * 数据库版本 */ public static final int VERSION = 1; private static CoolWeatherDB coolWeatherDB; private SQLiteDatabase db; /** * 将构造方法私有化 */ private CoolWeatherDB(Context context) { CoolWeatherOpenHelper dbHelper = new CoolWeatherOpenHelper(context, DB_NAME, null, VERSION); db = dbHelper.getWritableDatabase(); } /** * 获取CoolWeatherDB的实例。 */ public synchronized static CoolWeatherDB getInstance(Context context) { if (coolWeatherDB == null) { coolWeatherDB = new CoolWeatherDB(context); } return coolWeatherDB; } /** * 将Province实例存储到数据库。 */ public void saveProvince(Province province) { if (province != null) { ContentValues values = new ContentValues(); values.put("province_name", province.getProvinceName()); values.put("province_code", province.getProvinceCode()); db.insert("Province", null, values); } } /** * 从数据库读取全国所有的省份信息。 */ public List<Province> loadProvinces() { List<Province> list = new ArrayList<Province>(); Cursor cursor = db.query("Province", null, null, null, null, null, null); if (cursor.moveToFirst()) { do { Province province = new Province(); province.setId(cursor.getInt(cursor.getColumnIndex("id"))); province.setProvinceName(cursor.getString(cursor .getColumnIndex("province_name"))); province.setProvinceCode(cursor.getString(cursor .getColumnIndex("province_code"))); list.add(province); } while (cursor.moveToNext()); } return list; } /** * 将City实例存储到数据库。 */ public void saveCity(City city) { if (city != null) { ContentValues values = new ContentValues(); values.put("city_name", city.getCityName()); values.put("city_code", city.getCityCode()); values.put("province_id", city.getProvinceId()); db.insert("City", null, values); } } /** * 从数据库读取某省下所有的城市信息。 */ public List<City> loadCities(int provinceId) { List<City> list = new ArrayList<City>(); Cursor cursor = db.query("City", null, "province_id = ?", new String[] { String.valueOf(provinceId) }, null, null, null); if (cursor.moveToFirst()) { do { City city = new City(); city.setId(cursor.getInt(cursor.getColumnIndex("id"))); city.setCityName(cursor.getString(cursor .getColumnIndex("city_name"))); city.setCityCode(cursor.getString(cursor .getColumnIndex("city_code"))); city.setProvinceId(provinceId); list.add(city); } while (cursor.moveToNext()); } return list; } /** * 将County实例存储到数据库。 */ public void saveCounty(County county) { if (county != null) { ContentValues values = new ContentValues(); values.put("county_name", county.getCountyName()); values.put("county_code", county.getCountyCode()); values.put("city_id", county.getCityId()); db.insert("County", null, values); } } /** * 从数据库读取某城市下所有的县信息。 */ public List<County> loadCounties(int cityId) { List<County> list = new ArrayList<County>(); Cursor cursor = db.query("County", null, "city_id = ?", new String[] { String.valueOf(cityId) }, null, null, null); if (cursor.moveToFirst()) { do { County county = new County(); county.setId(cursor.getInt(cursor.getColumnIndex("id"))); county.setCountyName(cursor.getString(cursor .getColumnIndex("county_name"))); county.setCountyCode(cursor.getString(cursor .getColumnIndex("county_code"))); county.setCityId(cityId); list.add(county); } while (cursor.moveToNext()); } return list; } }
可以发现插入数据比较容易看懂:主要用到ContentValue这个类中的 put() t的方法
查询这部份就不是那么的好懂:但用到的也是基本的Cursor类中的 moveToFirst() moveToNext() getInt() getString() getColumnIndex()的一些方法。
相关文章推荐
- android(体验一个项目天气预报开发)-2
- android(体验一个项目天气预报开发)-3
- 自学android开发过程中倒腾的两个小项目,一个是音乐播放器,一个是天气预报。
- 一个项目搞定Android开发,Google天气预报整体功能的分析.
- 一个项目搞定Android开发, Google天气预报开发之API的分析
- Android开发-将一个项目作为lib导入到另外一个项目中
- 要开发一个android项目,以android为客户端,pc为服务器端,如果实现通讯交互?
- android 开发过程中,两个包名相同的项目如何上传到同一个应用商城
- android开发(如何开发一个可以维护的好项目):一 、定义基类
- 在一个创业项目组干开发是一种什么样的体验?
- [Android开发教程]Android官网developer training中文版教程 - 1.1.1 创建一个Android项目
- Android开发中导入一个项目作为library时出错解决方法
- android开发中在eclipse中导入一个项目时出现中文乱码的解决方法
- Android 开发一个天气预报桌面小部件
- 从零开始开发一个Android项目的一般步骤
- Android项目实战之(1)-- 开发一个"快速冲浪"的程序
- Cocos2d-x Android开发环境的配置之二 :创建一个项目并部署在手机上
- [android开发]天气预报项目的开发之数据接口与网络请求-1
- Android快乐贪吃蛇游戏实战项目开发教程-03虚拟方向键(二)绘制一个三角形
- 学习安卓开发过程之中,自己倒腾的两个小项目,一个是音乐播放器,一个是天气预报。