`
250367976
  • 浏览: 26777 次
社区版块
存档分类
最新评论

Android学习笔记之界面更新(一对N)

阅读更多

有时候我们在界面对数据进行操作(如修改、删除),而在另一个页面也要进行相应的修改,但我们返回另一个页面的时候,它还是原来的样子(要的就是这样,因为我只是去别的页面做些操作而已,这个页面的信息我还是要看的,而这里要说的就是一些小的修改,如名字、某个标记的改变)。

就拿自己做的词典来说吧,这个词典浏览的时候有两个模式,一个列表,一个类似卡片的,当我们在列表浏览到一半的时候,我突然想看看卡片的效果,这时,我们就转到卡片模式,在卡片模式中我们浏览浏览,然后我就收藏了一个单词(收藏成功星星会亮)而这个单词正好在列表模式的时候它显示在哪里(星星没有亮的),这时候我们要回到列表了(用的是相当于返回上一页一样的方法),这时候回来我们会看到刚刚收藏的单词的收藏标记(星星)没有改变,这样就很尴尬了……

解决办法就是利用引用,取得另一个页面的控件,而当在本页面修改时就通知另一个页面的控件更新。

先说listview的更新;刚开始做的时候,我是直接在Item里用View取得控件然后直接修改控件的内容,但是上下拉之后,还是变成原来的样子了,原来是listview每显示一个Item就会调用一次getView(),而之前我只是修改了界面控件的值,并没有修改listview的数据源,所以就算我修改了数据库,listview的数据源还是原来查询出来的值。
对listview的数据源list的数据修改之后执行

Java代码 复制代码
  1. MyAdapter myAdapter = New MyAdapter ();
  2. myAdapter = (MyAdapter) listView.getAdapter();
  3. myAdapter .notifyDataSetChanged();
MyAdapter myAdapter = New MyAdapter ();
myAdapter = (MyAdapter) listView.getAdapter();
myAdapter .notifyDataSetChanged();

 

取得另一个页面的控件,而当在本页面修改时就通知另一个页面的控件更新:

ActivityA页:

Java代码 复制代码
  1. //注:INSTANCE 是ActivityB的一个静态变量static ActivityB INSTANCE;INSTANCE=this;
  2. ActivityB.INSTANCE.getImageView().setImageResource(imID);//修改值
  3. ActivityB.INSTANCE.getImageView().invalidate();//通知更新
  4. //如果用到listview和list资源数组,一定要连list也一起修改
  5. //如:ActivityB.getList().get(0).put("name", value);
  6. //记得通知listview用notifyDataSetChanged()更新
//注:INSTANCE 是ActivityB的一个静态变量static ActivityB INSTANCE;INSTANCE=this;
ActivityB.INSTANCE.getImageView().setImageResource(imID);//修改值
ActivityB.INSTANCE.getImageView().invalidate();//通知更新

//如果用到listview和list资源数组,一定要连list也一起修改
//如:ActivityB.getList().get(0).put("name", value);
//记得通知listview用notifyDataSetChanged()更新

 

0
5
分享到:
评论
3 楼 250367976 2013-06-19  
好吧,,现在我知道很多方法可以,现在这个适合初学者,,容易理解(我是这样认为的),不过我还是觉得这个好
2 楼 250367976 2013-05-24  
shenglongq 写道
这种方式太垃圾了

那有什么方法高级点
1 楼 shenglongq 2013-05-24  
这种方式太垃圾了

相关推荐

    第一行代码 android学习笔记 完整版

    "Android学习笔记" Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中...

    Android学习笔记(十)——实现新闻列表

    Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...

    Android开发学习笔记

    ### Android开发学习笔记 #### Button按钮的实现与交互 在Android开发中,`Button`控件是最常用的用户界面元素之一,用于触发特定的操作或事件。本文档将详细讲解如何创建并自定义一个简单的按钮,并设置点击事件...

    Android 学习笔记

    这篇学习笔记主要涵盖了关于布局的一些基本概念,特别是`fill_parent`和`wrap_content`这两种尺寸指定方式,以及如何通过XML布局文件来精确控制组件的位置。 首先,`fill_parent`和`wrap_content`是Android布局中的...

    android学习笔记之二

    在“android学习笔记之二”中,我们主要探讨的是如何在Android平台上实现一个用户登录的模拟工程。这个项目,名为“UserLoginTestProject”,旨在帮助开发者理解和实践Android应用中的用户认证流程。通过这个实例,...

    android 学习笔记

    Android学习笔记(1)-永远不变的Hello World Google的Android SDK发布也有一段时间了,一直想研究一下却苦于找不到时间。利用这个周未,开始强迫自己再次进入学习状态,原因很简单:我看好开放的gPhone。 SDK的下载...

    Android开发学习笔记(整理)

    Android开发学习笔记(整理),整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、...

    Android学习笔记(持续更新中)_李富强.doc

    Android学习笔记(持续更新中)_李富强.doc

    Android基础学习笔记

    Android基础学习笔记主要涵盖了一系列关于Android开发的基本概念和关键组件,以下是这些知识点的详细解析: 1. **Activity**: 是Android应用程序的基本单元,它代表用户在屏幕上看到的一个界面。每个Activity都必须...

    android 学习笔记(全全整理)

    Android学习笔记全全整理,是针对想要深入理解并掌握Android开发技术的学习者们的一份宝贵资源。这份笔记涵盖了从基础到高级的多个方面,旨在帮助读者建立起完整的Android知识体系。以下将详细介绍其中可能包含的...

    android界面开发笔记相关代码

    在Android平台上进行界面开发是一项关键任务,涉及到用户体验和应用程序的直观性...提供的"android开发笔记(界面).pdf"和"android界面开发.rar"资源应包含了更详细的解释和示例代码,可以帮助开发者进一步深入学习。

    黑马程序员Android学习笔记

    《黑马程序员Android学习笔记》是一份专为初学者设计的详尽教程,旨在帮助那些希望踏入安卓开发领域的人员快速掌握核心知识。这份笔记涵盖了从基础到进阶的多个主题,帮助学习者系统地理解Android应用开发的过程。 ...

    ArcGIS for android学习笔记

    本篇学习笔记主要涵盖了ArcGIS for Android的基础配置和核心组件MapVie的使用。 首先,配置ArcGIS for Android项目需要在`Project`级别的`build.gradle`文件中添加Esri的仓库,确保能获取到所需的库。接着,在`...

    android 学习笔记doc

    这篇学习笔记涵盖了Android开发的基本知识点,旨在帮助初学者系统地理解和深入探索这个平台。 1. **Android系统架构**:Android由Linux内核、硬件抽象层(HAL)、运行库层、应用程序框架层和应用程序层组成。了解...

    android学习笔记.zip

    《Android学习笔记》 在移动应用开发领域,Android操作系统占据着重要的地位,为开发者提供了丰富的API和工具,使得创建各种应用程序变得可能。本压缩包文件包含了一位学习者从第一天到第五天,以及一个特定项目...

Global site tag (gtag.js) - Google Analytics