ListView添加数据后动态刷新(有可运行Demo)

主要实现思路:

在填充ListView的List集合改变时

将改变后的List集合赋值给Adapter中的集合接收

然后用Adapter对象调用notifyDataSetChanged();

 

//给List添加新数据 改变原有List

list.add(新内容);

//将新改变后的list赋值给adapter中的list

adapter.list = list;

//用adapter对象调用notifyDataChanged();

adapter.notifyDataChanged();

即可实现动态刷新

 

详细操作见下面Demo源代码

Activity代码:

package com.example.listviewactfresh;

import java.util.ArrayList;
import java.util.List;

import com.example.adapter.TestAdapter;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;

public class MainActivity extends Activity {
	private List<String> list;
	private ListView lv;
	private Button btn;
	TestAdapter adapter;
	private int count = 0;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		list = new ArrayList<String>();
		list.add("我是小明");
		list.add("我是小张");
		list.add("我是小海");
		lv = (ListView) this.findViewById(R.id.myList);
		btn = (Button) this.findViewById(R.id.button1);
		adapter = new TestAdapter(list, this);
		lv.setAdapter(adapter);
		btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				count++;
				list.add("我是小"+count); //添加新数据 改变List集合
				adapter.list = list;  //将改变后的List集合赋给Adapter中的集合
				adapter.notifyDataSetChanged(); //调用notifyDataSetChanged方法
			}
		});
	}

	

}

Adapter代码:

package com.example.adapter;

import java.util.List;

import com.example.listviewactfresh.R;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class TestAdapter extends BaseAdapter {
	public List<String> list;
	private Context context;
	private LayoutInflater mInflater;
	public TestAdapter(List<String> list,Context context) {
		super();
		this.list = list;
		this.context = context;
		mInflater = LayoutInflater.from(context);  
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return list.size();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return list.get(position);
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ViewHolder vh = null;
		if(convertView == null){
			vh = new ViewHolder();
			convertView = mInflater.inflate(R.layout.listitem, null);
			vh.tv = (TextView) convertView.findViewById(R.id.textView1);
			convertView.setTag(vh);
		}else{
			vh = (ViewHolder) convertView.getTag();
		}
		vh.tv.setText(list.get(position));
		return convertView;
	}
	
	public class ViewHolder{
		public TextView tv;
	}
}


源码下载地址:http://download.csdn.net/detail/a85454597/7521793

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值