简单的天气预报 (六)

本篇主要介绍的内容有两个

 

一、切换城市

二、刷新天气

先来介绍刷新天气

在上一篇中,我们在显示天气的activity里初始化了一些控件,里面包括2个按钮,其中之一就是刷新天气。然后我们去设置它的点击事件。

<span style="font-family:Microsoft YaHei;font-size:18px;">refreshWeather.setOnClickListener(this);</span>
<span style="font-family:Microsoft YaHei;font-size:18px;">	@Override
	public void onClick(View view) {
		switch (view.getId()) {
		case R.id.switch_city:
		        ...
			break;
		case R.id.refresh_weather:
			publishText.setText("同步ing...");
			SharedPreferences sp = PreferenceManager
					.getDefaultSharedPreferences(this);
			String weatherCode = sp.getString("weather_code", "");
			if (!TextUtils.isEmpty(weatherCode)) {
				queryWeatherInfo(weatherCode);
			}
			break;

		default:
			break;
		}

	}</span>

主要就是通过SharedPreferences获取天气代码,然后去查询天气,逻辑很简单。

接下来,我们来介绍一下如何切换城市。

同样的,初始化控件,然后设置其点击事件。

<span style="font-family:Microsoft YaHei;font-size:18px;">	@Override
	public void onClick(View view) {
		switch (view.getId()) {
		case R.id.switch_city:
			Intent intent = new Intent(this, ChooseAreaActivity.class);
			intent.putExtra("from_weather_activity", true);
			startActivity(intent);
			finish();
			break;
		case R.id.refresh_weather:
			...
			break;

		default:
			break;
		}

	}</span>


主要是通过意图跳转,并且设置了一个标志位:from_weather_activity。

然后就去是ChooseAreaActivity里去通过意图来获取标志位,然后再进行一系列的操作。

<span style="font-family:Microsoft YaHei;font-size:18px;">isFromWeatherActivity = getIntent().getBooleanExtra("from_weather_activity", false);</span>
<span style="font-family:Microsoft YaHei;font-size:18px;">if (sp.getBoolean("city_selected", false) && !isFromWeatherActivity) {
			Intent intent = new Intent(this, WeatherActivity.class);
			startActivity(intent);
			finish();
			return;
		}</span>


如果已经选择过了城市,并且还不是从WeatherActivity界面跳转过来的,那么就去直接显示天气。

否则,顺序执行以后的代码,也就是去本地数据库中查询所有的省市县,这样也就完成了重新选择城市的问题。


来看看运行结果。

自此,全部程序就完成啦。

程序已经托付github : https://github.com/guya1990/MyCoolWeather.git

注:本程序来自于郭神的《第一行代码》,文章之所以标志为原创是主要是以下原因:

1、经过了郭神的许可

2、所有代码和图都是我经过理解且重新敲进去的。

最后感谢郭神,我觉得郭神的《第一行代码》用来知识点扫盲挺好的,里面有很多小技巧,详细的程序内容大家可以去买一本看看,这里只是我自己重新实现了一下。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值