学习《android第一行代码》根据书本开发的天气预报app,主要用于熟练操作android开发(android studio3.0平台)。

今天主要分享一下从服务器上获取天气信息,通过ListView绑定数据的操作(可以采用RecycleView),然后进行页面点击跳转。

一、 服务器返回数据预览

通过本书作者提供的访问地址,guolin.tech/api/china,直接打开可以访问到全国各地的天气信息,guolin.tech/api/china/16/116

(如点击无法打开,请直接复制链接在浏览器中访问)

[
{"id":1,"name":"北京"},{"id":2,"name":"上海"},{"id":3,"name":"天津"},{"id":4,"name":"重庆"},
{"id":5,"name":"香港"},{"id":6,"name":"澳门"},{"id":7,"name":"台湾"},{"id":8,"name":"黑龙江"},
{"id":9,"name":"吉林"},{"id":10,"name":"辽宁"},{"id":11,"name":"内蒙古"},{"id":12,"name":"河北"},
{"id":13,"name":"河南"},{"id":14,"name":"山西"},{"id":15,"name":"山东"},{"id":16,"name":"江苏"},
{"id":17,"name":"浙江"},{"id":18,"name":"福建"},{"id":19,"name":"江西"},{"id":20,"name":"安徽"},
{"id":21,"name":"湖北"},{"id":22,"name":"湖南"},{"id":23,"name":"广东"},{"id":24,"name":"广西"},
{"id":25,"name":"海南"},{"id":26,"name":"贵州"},{"id":27,"name":"云南"},{"id":28,"name":"四川"},
{"id":29,"name":"西藏"},{"id":30,"name":"陕西"},{"id":31,"name":"宁夏"},{"id":32,"name":"甘肃"},
{"id":33,"name":"青海"},{"id":34,"name":"新疆"}
]

如上面看到的可以获取到各省的信息,通过id可以进一步的获取市县的信息。

二、创建本地数据存储

根据服务器中获取的数据属性,创建Province、City、County三个数据表分别存储省、市、县的信息。

android入门学习-天气预报app(一) 创建数据表采用Litepal,这里需要导入外部库,需要在build.gradle中添加

implementation 'org.litepal.android:core:1.4.1'
(注implemention为android3.0以上版本才有的,与compile并不完全一样,这里不多做解释,2.0版本采用compile不影响
同时在加载外部库时可能出现无法引用的问题,请清理项目后重新build)

 后面1.4.1是版本号,可以查询官网获取最新版本

下面附上三个数据表类,由于是采用Litepal需要继承DataSupport

 

 

  

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;
    }
}
Province省数据表
public class City extends DataSupport {
    private int id;
    private String cityName;
    private int cityCode;
    private int provinceId;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public int getCityCode() {
        return cityCode;
    }

    public void setCityCode(int cityCode) {
        this.cityCode = cityCode;
    }

    public int getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(int provinceId) {
        this.provinceId = provinceId;
    }
}
City市数据表

相关文章: