android-运用notifyDataSetChanged()更新UI

来源:互联网 发布:数据线上的磁环 编辑:程序博客网 时间:2024/05/16 10:27

notifyDataSetChanged()可以在修改适配器绑定的数组后,不用重新刷新Activity,通知Activity更新ListView,可进行增删改查

运用hander增加一项,达到更新UI目的

listView显示布局

<RelativeLayout 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: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=".MainActivity" >    <ListView        android:id="@+id/listView1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentTop="true" >    </ListView></RelativeLayout>
list布局
<?xml version="1.0" encoding="utf-8"?><TextView     android:id="@+id/text1"    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="30dp"    android:textSize="20sp"  ></TextView>
MainActivity源码

import java.nio.channels.AsynchronousCloseException;import java.util.ArrayList;import java.util.List;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity {private ListView lv;List<String> lists = new ArrayList<String>();ArrayAdapter<String> adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView) findViewById(R.id.listView1);//往lists添加数据lists.add("aaa");lists.add("bbb");lists.add("ccc");adapter = new ArrayAdapter<String>(this, R.layout.list, lists);lv.setAdapter(adapter);<span style="white-space:pre"></span>Handler handler=new Handler();  handler.postDelayed(new Runnable() {@Overridepublic void run() {lists.add("增加一项");adapter.notifyDataSetChanged();}},10000);//延迟10秒执行
10秒后变成

运用AsyncTask更新UI



















0 0
原创粉丝点击