天气预报模块的实现

本文介绍了实现天气预报模块的过程,包括运行效果图展示,核心代码详解,如WeatherAdapter、WeatherActivity、Weather、HttpUtil和HttpCallbackListener等的代码实现,以及在实际操作中遇到的问题,如key申请错误导致无法显示天气,未导入Google jar包引发的程序错误等。
摘要由CSDN通过智能技术生成

一、运行效果图

 

 

二、核心代码

1.WeatherAdapter的代码:

public class WeatherAdapter extends ArrayAdapter<Weather>{
	private int resourceId;	
	
	public WeatherAdapter(Context context, int textViewResourceId, List<Weather> objects) {
		super(context, textViewResourceId, objects);
		resourceId = textViewResourceId;
	}

	public View getView(int position,View convertView,ViewGroup viewgroup){
		Weather weather = getItem(position);
		ViewHolder viewHolder = null;
		if (convertView == null){
			viewHolder = new ViewHolder();
			convertView = LayoutInflater.from(getContext()).inflate(resourceId, null);
			viewHolder.tvDayOdWeek =  (TextView) convertView.findViewById(R.id.tvDayofWeek);
			viewHolder.tvDate = (TextView) convertView.findViewById(R.id.tvDate);			
			viewHolder.tvTemperature = (TextView) convertView.findViewById(R.id.tvTemperature);
			viewHolder.tvWeather = (TextView) convertView.findViewById(R.id.tvWeather);
			convertView.setTag(viewHolder);
			
			
		}else{
			viewHolder= (ViewHolder) convertView.getTag();
		}
		viewHolder.tvDayOdWeek.setText(weather.getDayOfWeek());
		viewHolder.tvDate.setText(weather.getDate());
		viewHolder.tvTemperature.setText(weather.getTemperature());
		viewHolder.tvWeather.setText(weather.getWeather());
		return convertView;
	}

	private class ViewHolder{
		TextView tvDayOdWeek;
		TextView tvDate;
		TextView tvTemperature;
		TextView tvWeather;
	}
	

}

 

2.WeatherActivity的核心代码:

public class WeatherActivity extends Activity{

	private EditText etCity;
	private ImageButton btnQuery;
	private ListView lvFutureWeather;
	public static final int SHOW_PESPONSE = 1;
	private List<Weather> data;
	
	
		private void parseWithJSON(String response){
			data = new ArrayList<Weather>();
			JsonParser parser = new JsonParser();
			JsonObject obj = (JsonObject) parser.parse(response);
			//返回状态码
			String resultcode = obj.get("resultcode").getAsString();
			//如果状态码是200说明返回数据成功
			if(resultcode != null && resultcode.equals(&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值