酷欧天气无法显示天气
我刚学Android不久,就照着第一行代码敲了一个欧酷天气。运行以后点击具体的一个城市,没有显示天气情况,想了一天没什么头绪。我贴一下代码,麻烦大家帮瞧瞧!
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.coolweather.com.coolweather">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name="org.litepal.LitePalApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".WeatherActivity"></activity>
</application>
</manifest>
public class Province extends DataSupport {
//LitePal中的每一个实体类都要继承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;
}
}
public class City extends DataSupport {
private int id;
private String cityName;//市的名字
private int cityCode;//市的代号
private int provinceId;//当前市所属省的id值
public void setId(int id) {
this.id = id;
}
public int getId() {
return 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;
}
}
public class County extends DataSupport {
private int id;
private String countyName;//县的名字
private String weatherId;//县所对应的天气id
private int cityId;//当前所属市的id
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setCountyName(String countyName) {
this.countyName = countyName;
}
public String getCountyName() {
return countyName;
}
public void setWeatherId(String weatherId) {
this.weatherId = weatherId;
}
public String getWeatherId() {
return weatherId;
}
public void setCityId(int cityId) {
this.cityId = cityId;
}
public int getCityId() {
return cityId;
}
}
public class AQI {
public AQICity city;
public class AQICity{
public String aqi;
public String pm25;
}
}
public class Basic {
/*由于用GSON解析出来的变量名不够友好
我们需要使用SerializedName来让GSON解析出来的变量名与实体类定义出来的变量名一一对应
也可以说是让JSON字段与Java字段建立映射关系*/
@SerializedName("city")
public String cityName;
@SerializedName("id")
public String weatherId;
public Update update;
public class Update{
@SerializedName("loc")
public String updateTime;
}
}
public class Forecast {
public String date;
@SerializedName("tmp")
public Temperature temperature;
@SerializedName("cond")
public More more;
public class Temperature{
public String max;
public String min;
}
public class More{
@SerializedName("txt_d")
public String info;
}
}
public class Now {
@SerializedName("tmp")
public String temperature;
@SerializedName("cond")
public More more;
public class More{
@SerializedName("txt")
public String info;
}
}
public class Suggestion {
@SerializedName("comf")
public Comfort comfort;
@SerializedName("cw")
public CarWash carWash;
public Sport sport;
public class Comfort{
@SerializedName("txt")
public String info;
}
public class CarWash{
@SerializedName("txt")
public String info;
}
public class Sport{
@SerializedName("txt")
public String info;
}
}
public class Weather {
public String status;
public Basic basic;
public AQI aqi;
public Now now;
public Suggestion suggestion;
//因为daily_forecast是数组,要用List集合引用Forecast
@SerializedName("daily_forecast")
public List<Forecast> forecastList;
}
public class HttpUtil {
//处理请求,和服务器交互
public static void sendOkHttpRequest(String address, okhttp3.Callback callback){
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(address).build();
client.newCall(request).enqueue(callback);
}
}