更新ListView的几种方法
来源:互联网 发布:windows pe镜像下载 编辑:程序博客网 时间:2024/06/01 09:44
1、直接用notifyDataSetChanged()的方法
2、用Message的sendEmptyMessage(0)方法
3、用Message的实例化传入callback
4、单例message
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.handleruse.MainActivity" > <ListView android:id="@+id/lv" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="notifyDataSetChanged更新ListView" /> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Message的空信息更新ListView" /> <Button android:id="@+id/btn3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Message的callback更新ListView" /> <Button android:id="@+id/btn4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Message的单例更新ListView" /> </LinearLayout> </ScrollView></LinearLayout>
package com.example.updatelistview;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Handler.Callback;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;public class MainActivity extends Activity implements OnClickListener {private Button btn1, btn2,btn3,btn4;private ArrayAdapter<String> myAdapter;private List<String> stringList;private ListView lv;private Handler myHandler;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);stringList = new ArrayList<String>();stringList.add("1");stringList.add("2");stringList.add("3");stringList.add("4");stringList.add("5");myAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1, stringList);lv = (ListView) findViewById(R.id.lv);lv.setAdapter(myAdapter);btn1 = (Button) findViewById(R.id.btn1);btn2 = (Button) findViewById(R.id.btn2);btn3 = (Button) findViewById(R.id.btn3);btn4=(Button) findViewById(R.id.btn4);btn1.setOnClickListener(this);btn2.setOnClickListener(this);btn3.setOnClickListener(this);btn4.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn1:stringList.remove(0);myAdapter.notifyDataSetChanged();break;case R.id.btn2:stringList.remove(0);myHandler=new MyHandler();myHandler.sendEmptyMessage(0);break;case R.id.btn3:stringList.remove(0);myHandler=new Handler(callback);myHandler.sendEmptyMessage(0);break;case R.id.btn4:stringList.remove(0);//单例message,不会消耗内存String str="lhm";Message m=Message.obtain();m.obj=str;m.what=0;myHandler=new MyHandler();myHandler.sendMessage(m);break;default:break;}}public class MyHandler extends Handler {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case 0:myAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1, stringList);lv.setAdapter(myAdapter);break;default:break;}}}Callback callback=new Callback() {@Overridepublic boolean handleMessage(Message msg) {myAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1, stringList);lv.setAdapter(myAdapter);return false;}};}
0 0
- 更新ListView的几种方法
- ListView更新的几种方法
- 自定义ListView的几种方法
- Asp更新数据库的几种方法
- Handler更新UI的几种方法
- android更新UI的几种方法
- android更新UI的几种方法
- Android更新UI的几种方法
- android更新UI的几种方法
- android更新UI的几种方法
- 神经网络更新参数的几种方法
- Android 更新UI的几种方法
- Android中ListView的几种常见的优化方法
- Android中ListView的几种常见的优化方法
- Android中ListView的几种常见的优化方法
- Android中ListView的几种常见的优化方法
- Android中ListView的几种常见的优化方法
- Android中ListView的几种常见的优化方法
- C#多线程学习(四) 多线程的自动管理(线程池)
- $str_2 = "str_1 : ${str_1}2 <br>"; //引用的变量名后,多了个字符2 即$str_12
- 第三届_求解算式
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Cocos2d-x 3.x瓦片地图
- 更新ListView的几种方法
- AFN 设置请求数据类型
- 【慕课笔记】第四章 JAVA中的集合框架(上) 第7节 学生选课—课程修改
- js简单函数运用
- linux下源码安装GCC
- ArrayAdapter,SimpleAdapter,BaseAdapter
- (超高性价比)有了PLC上网神器,PLC远程监视,PLC远程监控,构建工业物联网很简单
- C#多线程学习(五) 多线程的自动管理(定时器)
- Android之PowerManager&BatteryManager