美文网首页爱天气App实战开发
模块6:绑定天气数据(2)

模块6:绑定天气数据(2)

作者: jingz课程 | 来源:发表于2019-04-19 13:00 被阅读0次

    我们来实现页面标题文字的更新。Android SDK提供了针对ViewPager页面切换的监听器组件OnPageChangeListener类,它是作为ViewPager类的内部类定义的。首先为MainActivity定义监听器成员mPageListener

    注意这里的Java语言特性。在这里对OnPageChangeListener类进行了匿名的扩展并生成新的对象而由成员mPageListener来引用。

    其次,要使用异步任务获取到的天气数据对象,所以要进行一点改造。定义天气对象列表作为MainActivity类的成员:

    然后修改异步任务RequestWeatherTaskonPostExecute()方法,将其获取到的全部天气数据对象填入mWeathers列表:

    现在我们的注意力回到监听器对象。页面切换事件由回调方法onPageSelected()来处理。它的参数即表示当前切换到的页面序号。我们只需要在其被调用时取出对应的天气对象,用对应的位置信息设置标题文字即可。

    先定义一个根据当前页面序号来设置标题上的位置文字的函数setTitleAddress()

    然后再监听器对象的onPageSelected()方法中调用:

    这样即实现了当用户切换不同城市页面时,页面标题上的地址也跟随变化。但是还有个问题:如果用户不进行页面切换,此时如果重新加载数据且地址文字发生变化,则此种变化仍然无法反应到用户界面上。所以还需要在加载数据之后主动刷新一下页面标题。修改RequestWeatherTaskonPostExecute()方法:

    运行程序查看效果如下:

    最后,我们来实现背景大图的加载和显示。

    相关文章

      网友评论

        本文标题:模块6:绑定天气数据(2)

        本文链接:https://www.haomeiwen.com/subject/xiuvwqtx.html