android-运用notifyDataSetChanged()更新UI

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;

	@Override
	protected 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() {
			
			@Override
			public void run() {
			lists.add("增加一项");
				adapter.notifyDataSetChanged();
			}
		},10000);//延迟10秒执行
10秒后变成

运用AsyncTask更新UI



















猜你喜欢

转载自blog.csdn.net/qwer492915298/article/details/50461367