- 浏览: 400175 次
文章分类
- 全部博客 (327)
- Android (114)
- Java (13)
- Java基础 (14)
- Glib (2)
- linux (15)
- extjs (5)
- eclipse (2)
- Asterisk (56)
- MYSQL (6)
- 数据库 (9)
- PHP (7)
- C# (18)
- 杂谈~~ (1)
- web开发前端 (3)
- 网络编程 (2)
- Opensips (2)
- voip (3)
- debian (7)
- openfire (15)
- wordpress (1)
- 版本控制 (1)
- Android 线程服务广播 (1)
- SRTP (2)
- 单片机及ARM等 (3)
- 基础知识 (5)
- asp.net (2)
- 单片机 (1)
- 设计模式及架构 (1)
- 安全 (1)
- Cubieboard 草莓树莓各类派 Android开发板 (1)
- J2EE (2)
- BootStrap (3)
- BootStrap web前端开发 (1)
- web前端开发 (4)
- object-c (1)
- openwrt (8)
- 智能家居 (4)
- Node.js (4)
最新评论
-
xiaoxiecomeon:
你这个程序一存在线程的时间片相互抢占的问题,运行时间长了很可能 ...
Runnable 和 Thread -
dotjar:
我觉得话应该这么说:引用TestThread tt = new ...
Runnable 和 Thread -
dagf113225:
调用TelephonyManager的隐藏API是先参考Fra ...
Android提高第十四篇之探秘TelephonyManager
有时候我们需要修改已经生成的列表,添加或者修改数据,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>
程序代码:
1 import java.util.ArrayList; 2 3 import android.app.Activity; 4 import android.os.AsyncTask; 5 import android.os.Bundle; 6 import android.os.Handler; 7 import android.view.View; 8 import android.widget.AdapterView; 9 import android.widget.ArrayAdapter; 10 import android.widget.ListView; 11 import android.widget.AdapterView.OnItemClickListener; 12 13 public class main extends Activity { 14 /** Called when the activity is first created. */ 15 ListView lv; 16 ArrayAdapter<String> Adapter; 17 ArrayList<String> arr=new ArrayList<String>(); 18 @Override 19 public void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.main); 22 lv=(ListView)findViewById(R.id.lv); 23 arr.add("123"); 24 arr.add("234"); 25 arr.add("345"); 26 Adapter = new ArrayAdapter<String>(this,R.layout.playlist, arr); 27 lv.setAdapter(Adapter); 28 lv.setOnItemClickListener(lvLis); 29 editItem edit= new editItem(); 30 edit.execute("0","第1项");//把第一项内容改为"第一项" 31 Handler handler=new Handler(); 32 handler.postDelayed(add,3000);//延迟3秒执行 33 } 34 Runnable add=new Runnable(){ 35 36 @Override 37 public void run() { 38 // TODO Auto-generated method stub 39 arr.add("增加一项");//增加一项 40 Adapter.notifyDataSetChanged(); 41 } 42 }; 43 class editItem extends AsyncTask<String,Integer,String>{ 44 @Override 45 protected String doInBackground(String... params) { 46 arr.set(Integer.parseInt(params[0]),params[1]); 47 //params得到的是一个数组,params[0]在这里是"0",params[1]是"第1项" 48 //Adapter.notifyDataSetChanged(); 49 //执行添加后不能调用 Adapter.notifyDataSetChanged()更新UI,因为与UI不是同线程 50 //下面的onPostExecute方法会在doBackground执行后由UI线程调用 51 return null; 52 } 53 54 @Override 55 protected void onPostExecute(String result) { 56 // TODO Auto-generated method stub 57 super.onPostExecute(result); 58 Adapter.notifyDataSetChanged(); 59 //执行完毕,更新UI 60 } 61 62 } 63 private OnItemClickListener lvLis=new OnItemClickListener(){ 64 @Override 65 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 66 long arg3) { 67 //点击条目时触发 68 //arg2即为点中项的位置 69 setTitle(String.valueOf(arr.get(arg2))); 70 71 } 72 73 }; 74 75 }
来源网址:http://www.pocketdigi.com/20100827/75.html
上面可以下载相应的源代码。。。
<script></script>
发表评论
-
直接拿来用!最火的Android开源项目整理
2015-09-16 10:13 579一、代码库 1、from 代码家 整理比较好的源 ... -
探讨android更新UI的几种方法
2014-06-09 23:27 597今天讲的内容非常简单,只是讲讲有关于android界面更新的 ... -
Android 滑动切换页面 以及屏幕手势
2014-05-08 17:49 496手机进入智能机时代,触摸屏也已成为主流之势,原来的手机按键也 ... -
android 用Achartengine 作图
2014-05-08 16:55 727Achartengine 是google的一 ... -
Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
2014-05-08 16:28 731Animation的4个基本动画效果 What is An ... -
java.lang.ClassNotFoundException: Didn't find class "android.support.v4.view.Vie
2014-05-06 14:43 2884Android错误:Caused by: java.lang ... -
Android Socket通信如何设置超时时间
2014-05-06 14:14 1035其实关于这个问题可能用到的人不会很多,不过我在这里还是说说。 ... -
【转】Android本地语音识别引擎PocketSphinx-语言建模
2014-02-13 10:35 1781Android本地语音识别引擎PocketSphinx- ... -
关于build.prop原始Dalvik虚拟机设定与调整
2013-09-05 10:40 1244原厂S3 台版 1GB Ramsystem/build.pro ... -
Android中Service与IntentService的使用比较
2013-09-04 15:24 1170该博客来自网络——— ... -
android 应用程序Activity之间数据传递与共享的几种途径
2013-08-01 17:24 8891.基于消息的通信机制 Intent ---boud ... -
android数据通信方式
2013-08-01 17:15 887http://www.itkee.com/develope ... -
“android.intent.category.DEFAULT”的目的是什么?
2013-07-31 16:43 5211、要弄清楚这个问题,首先需要弄明白什么是implicit( ... -
集成拨号盘,2句话的事情
2013-07-30 15:45 585<intent-filter> < ... -
Android TabHost动态加载内容总结
2013-07-25 17:49 935前面用继承TabActivity的方法很好的完成了,TabHo ... -
[Android实例] android json
2013-07-17 15:20 636import java.io.ByteArrayOutput ... -
android json解析及简单例子
2013-07-17 15:19 910JSON的定义: 一种轻量级的数据交换 ... -
AsyncTask的用法-UI刷新发放
2013-07-15 14:50 646在开发Android应用时必须遵守单线程模型的原则: A ... -
java.lang.OutOfMemoryError处理错误
2013-07-15 14:41 644java.lang.OutOfMemoryError异常解决 ... -
关于android.view.WindowLeaked异常的解决方案
2013-07-15 10:34 594Android.view.WindowLeaked按字面了解, ...
相关推荐
Android中ListView用NotifyDataSetChanged实现添加数据时动态刷新
本文实例讲述了Android编程实现动态更新ListView的方法。分享给大家供大家参考,具体如下: 有时候我们需要修改已经生成的列表,添加或者修改数据,notifyDataSetChanged()可以在修改适配器绑定的数组后,不用重新...
Listview不用notifydatasetchanged更新数据的方法
本文实例讲述了Android通过Handler与AsyncTask两种方式动态更新ListView的方法。分享给大家供大家参考,具体如下: 有时候我们需要修改已经生成的列表,添加或者修改数据,notifyDataSetChanged()可以在修改适配器...
blog: http://blog.csdn.net/u013293125/article/details/52858396 http://www.cnblogs.com/ityizhainan/p/5976845.html
ListView列表数据更新,notifyDataSetChanged()方法 实现代码,简单易懂。是新手学习的好demo
根据EditText搜索框ListView动态显示数据是根据需求来的...4、利用notifyDataSetChanged()动态更新ListView 第一步:创建一个搜索框 这个还是比较容易的,这里我使用的是http://blog.csdn.net/walker02/article/detail
Android 调用notifyDataSetChanged方法失败解决办法 如果使用ListView、GridView等进行数据展示,当绑定的数据有了更新的时候,需要实时刷新...3、数据源更新了,但是adpter没有收到消息通知,无法动态更新列表。 一
在RecyclerView出来之前,ListView如果要实现局部更新,首先要自定义一个ViewHolder,其次要自己写一个局部更新的函数。整体的流程算不上复杂,但是确实不是很方便,开发者们都会不由得想,为什么不直接官方就把这个...
关于ListView中adapter调用notifyDataSetChanged失效的原因总结 详细见博客: http://blog.csdn.net/whitley_gong/article/details/50562634
不用adapter的notifyDataSetChanged()方式修改listview的item某个控件的设置,通过点击item中的textview使得该textview的值发生改变
对于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()....
学过Android开发的人都知道,ListView控件在开发中经常遇到,并且ListView通常结合Adapter适配器来进行数据显示和数据更新操作。姑且假设数据存储在名为dataList的成员变量中。数据操作无非是增加数据、删除数据这两...
使用Loader+contentProvider删除修改ListView 并替换notifyDataSetChanged 刷新 该资源代码是网上别人的代码 做了些简单的修改 这是网上大牛写的 做了微改并上传以便未来使用
adapter.notifyDataSetChanged(); listView.setSelection(0); titleText.setText("中国"); currentLevel = LEVEL_PROVINCE; } else { queryFromServer(null, "province"); } } /** * 查询...
主要原理:是在主界面有两个空间,一个是EditText,一个是ListView,ListView是放在EditText下面的,然后自定义建立一个adapter适配器, 这个适配器要继承Filterable这个接口,并实现这个接口的两个方法,一个是过滤...
简单实现android listviewx点赞动画效果,无需调用notifyDataSetChanged执行列表刷新
一个自定义Adapter,可以快速实现三个功能: (1)自动缓存处理 好吧,这个功能不是我实现的。我只是照搬鸿洋大大的,我会...只刷新指定item的某个子View,避免一直调用notifyDataSetChanged()造成不必要的整体刷新。