- 浏览: 3365634 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
http://www.pocketdigi.com/20100827/75.html
有时候我们需要修改已经生成的列表,添加或者修改数据,notifyDataSetChanged()可以在修改适配器绑定的数组后,不用重新刷新Activity,通知Activity更新ListView。今天的例子就是通过Handler AsyncTask两种方式来动态更新ListView.从今天起,每次学习的源代码都会打包上传,方便各位同学学习,注册帐号即可下载。
布局main.xml:
ListView列表布局playlist.xml:
程序代码:
打包的源代码中有错误,Adapter.notifyDataSetChanged();在doInBackground中,请作相应修改,感谢楼下同学提醒。
下载本例源代码
© 2010 – 2011, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记
有时候我们需要修改已经生成的列表,添加或者修改数据,notifyDataSetChanged()可以在修改适配器绑定的数组后,不用重新刷新Activity,通知Activity更新ListView。今天的例子就是通过Handler AsyncTask两种方式来动态更新ListView.从今天起,每次学习的源代码都会打包上传,方便各位同学学习,注册帐号即可下载。
布局main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/lv" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
ListView列表布局playlist.xml:
<?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/text1" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="30px" android:textSize="18sp" ></TextView>
程序代码:
package com.pocketdigi; import java.util.ArrayList; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.AdapterView.OnItemClickListener; public class main extends Activity { /** Called when the activity is first created. */ ListView lv; ArrayAdapter<String> Adapter; ArrayList<String> arr=new ArrayList<String>(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lv=(ListView)findViewById(R.id.lv); arr.add("123"); arr.add("234"); arr.add("345"); Adapter = new ArrayAdapter<String>(this,R.layout.playlist, arr); lv.setAdapter(Adapter); lv.setOnItemClickListener(lvLis); editItem edit= new editItem(); edit.execute("0","第1项");//把第一项内容改为"第一项" Handler handler=new Handler(); handler.postDelayed(add,3000);//延迟3秒执行 } Runnable add=new Runnable(){ @Override public void run() { // TODO Auto-generated method stub arr.add("增加一项");//增加一项 Adapter.notifyDataSetChanged(); } }; class editItem extends AsyncTask<String,Integer,String>{ @Override protected String doInBackground(String... params) { arr.set(Integer.parseInt(params[0]),params[1]); //params得到的是一个数组,params[0]在这里是"0",params[1]是"第1项" //Adapter.notifyDataSetChanged(); //执行添加后不能调用 Adapter.notifyDataSetChanged()更新UI,因为与UI不是同线程 //下面的onPostExecute方法会在doBackground执行后由UI线程调用 return null; } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); Adapter.notifyDataSetChanged(); //执行完毕,更新UI } } private OnItemClickListener lvLis=new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //点击条目时触发 //arg2即为点中项的位置 setTitle(String.valueOf(arr.get(arg2))); } }; }
打包的源代码中有错误,Adapter.notifyDataSetChanged();在doInBackground中,请作相应修改,感谢楼下同学提醒。
下载本例源代码
© 2010 – 2011, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记
发表评论
-
html5调用手机拍照并压缩上传
2016-06-24 15:36 1173http://my.oschina.net/zyxchuxin ... -
HTML调用PC摄像头
2016-04-06 09:31 1685http://www.oschina.net/code/sni ... -
微信JS-SDK获取signature签名以及config配置
2016-02-16 11:31 3089原文看:http://1017401036.iteye.com ... -
Html5添加移动触摸的网页版PDF格式文件阅读器插件
2016-01-07 15:30 1850http://my.oschina.net/u/2505907 ... -
js canvas 照片旋转 demo
2015-12-26 17:52 1485http://my.oschina.net/u/1259707 ... -
静态网站生成器 Lektor
2015-11-18 09:24 1242http://www.oschina.net/p/lektor ... -
history.js 一个无刷新就可改变浏览器栏地址的插件(不依赖jquery)
2015-11-10 21:27 1062http://ourjs.com/detail/5507ed1 ... -
如何使用js、html5在浏览器直接打开pdf文档
2015-11-03 22:32 8623http://q.cnblogs.com/q/48507/ ... -
HTML5 Geolocation API的使用方法及实现原理
2015-10-28 22:05 1616百度地图 百度地图为什 ... -
jquery三种支持手机触屏的插件库
2015-10-28 14:30 1320http://my.oschina.net/u/2395167 ... -
Android 应用热修复工具 AndFix
2015-09-16 08:42 1301http://www.oschina.net/p/andfix ... -
【gloomyfish】关于手机网站你想知道的一切
2015-09-15 21:48 843http://blog.csdn.net/jia20003/a ... -
java 判断请求来自手机或电脑
2015-09-15 21:42 943java 判断 android、iphone等 ... -
Cordova例子
2014-11-21 17:11 2890官方文档:http://cordova.apache.org/ ... -
Android AVD创建及设置中各参数详解
2014-11-19 16:49 1197http://zhongyankeji.blog.163.co ... -
PhoneGap的例子
2014-11-19 10:06 2382cordova命令行详解: http: ... -
Zepto.js与jquery的比较
2014-11-12 15:49 1827http://my.oschina.net/u/1791195 ... -
在android的webview中实现websocket
2014-07-23 21:29 2034在android的webview中实现websocket ht ... -
原生:在Android开发中调用Restful web服务
2014-07-23 21:27 1668在Android开发中调用Rest web服务 http:// ... -
Android+REST WebService服务方式手机开发
2014-07-23 21:27 864Android+REST WebService服务方式手机开发 ...
相关推荐
本文实例讲述了Android通过Handler与AsyncTask两种方式动态更新ListView的方法。分享给大家供大家参考,具体如下: 有时候我们需要修改已经生成的列表,添加或者修改数据,notifyDataSetChanged()可以在修改适配器...
今天的例子就是通过Handler AsyncTask两种方式来动态更新ListView.从今天起,每次学习的源代码都会打包上传,方便各位同学学习,注册帐号即可下载。 布局main.xml: <?xml version=1.0 encoding=utf-8?> <...
Android中ListView用NotifyDataSetChanged实现添加数据时动态刷新
Listview不用notifydatasetchanged更新数据的方法
ViewPager使用中notifyDataSetChanged无法更新问题解决
blog: http://blog.csdn.net/u013293125/article/details/52858396 http://www.cnblogs.com/ityizhainan/p/5976845.html
ListView列表数据更新,notifyDataSetChanged()方法 实现代码,简单易懂。是新手学习的好demo
ViewPager中使用FragmentPagerAdapter.notifyDataSetChanged无法更新当前Fragment解决方案
如果使用ListView、GridView等进行数据展示,当绑定的数据有了更新的时候,需要实时刷新ListView,即调用Adapter的notifyDataSetChanged方法,但是很多人在调用之后会发现ListView是数据并没有刷新,这是什么原因呢...
关于ListView中adapter调用notifyDataSetChanged失效的原因总结 详细见博客: http://blog.csdn.net/whitley_gong/article/details/50562634
根据EditText搜索框ListView动态显示数据是根据需求来的...4、利用notifyDataSetChanged()动态更新ListView 第一步:创建一个搜索框 这个还是比较容易的,这里我使用的是http://blog.csdn.net/walker02/article/detail
不用adapter的notifyDataSetChanged()方式修改listview的item某个控件的设置,通过点击item中的textview使得该textview的值发生改变
在RecyclerView出来之前,ListView如果要实现局部更新,首先要自定义一个ViewHolder,其次要自己写一个局部更新的函数。整体的流程算不上复杂,但是确实不是很方便,开发者们都会不由得想,为什么不直接官方就把这个...
FragmentPagerAdapter调用notifyDataSetChanged无效及解决方案
数据操作无非是增加数据、删除数据这两种主要的操作,而当数据有所变化时,为了及时向用户提供更新后的数据,我们知道需要在数据更新后调用适配器的notifyDataSetChanged()方法,来显示更新后的数据。殊不知,该方法...
对于android中的ListView刷新机制,大多数的程序员都是很熟悉的,修改或者添加adapter中的数据源之后,然后调用notifyDataSetChanged()刷新ListView。在这种模式下,我们会在getView中,根据不同的数据源,让控件...
demoAdapter.notifyDataSetChanged(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater()....
博客:http://blog.csdn.net/qibin0506/article/details/46404745的代码
使用Loader+contentProvider删除修改ListView 并替换notifyDataSetChanged 刷新 该资源代码是网上别人的代码 做了些简单的修改 这是网上大牛写的 做了微改并上传以便未来使用