天气预报的开发创造
一、前期准备
功能需求:可以罗列出全国所有的省市县;可以查看全国任意城市的天气预报;可以自由切换城市;提供手动更新以级后台自动更新天气预报。
技术:UI、网络、数据存储、服务等等。
API:和风数据https://www.heweather.com/,申请注册,需要key值。
在com.coolweather.android里面建4个包,db用于存放数据库模型相关的代码(province、city、county);gson用于存放GSON模型相关的代码;service用于存放服务相关的代码;util用于存放工具相关的代码。
二、涉及的知识
数据库、遍历、数据解析、设置权限、手动更新天气和切换城市、实体类、API接口等。
三具体步骤
1、最开始需要API接口,key值,我是用的和风数据,先申请一个用户会免费给申请次数(key值很重要)。
2、创建数据库和表(db),其中需要省市县三级的数据,在db包下建三个类用于存放三级的数据。
例如:这只是其中之一,剩下的类似。
public class Province extends DataSupport { private int id; private String provinceName; //记录省的名字 private int provinceCode; //记录省的代号 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getProvinceName() { return provinceName; } public void setProvinceName(String provinceName) { this.provinceName = provinceName; } public int getProvinceCode() { return provinceCode; } public void setProvinceCode(int provinceCode) { this.provinceCode = provinceCode; } }3、遍历全国省市县数据
再遍历之前需要先解析和处理返回的省市县的数据,例如我在代码中用handleProvincesResponse()、handleCitiesResponse()、handleCountiesResponse();使用JSONArray和JSONObject将数据解析出来在重组成实体类对象再将数据存储到数据库中。
遍历数据:
public class ChooseAreaFragment extends Fragment { private static final String TAG = "ChooseAreaFragment"; public static final int LEVEL_PROVINCE = 0; public static final int LEVEL_CITY = 1; public static final int LEVEL_COUNTY = 2; private ProgressDialog progressDialog; private TextView titleText; private Button backButton; private ListView listView; private ArrayAdapter<String> adapter; private List<String> dataList = new ArrayList<>()