Android 自定义Adapter动态更新ListView视图

本文介绍了如何在Android中使用自定义Adapter动态更新ListView视图。通过修改适配器的数据并调用`notifyDataSetChanged()`来刷新UI,实现添加或删除条目的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先将自定义的适配器的代码列下,主要是构造函数中List<DataBean> list 数据变化了,怎么更新UI的问题

public class SaveShowAdpter extends BaseAdapter {
 private Context context = null;
 private LayoutInflater listContainer = null;
 private List<DataBean> list; 
 public SaveShowAdpter(Context activity, List<DataBean> list) {
  context = activity;
  listContainer = (LayoutInflater) context
    .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
  this.list = list;
 }

/**

*当list数据发生变化时候开始调用

* removeBean(DataBean dataBean) addBean(DataBean dataBean)

*notifyDataSetChanged 通知附属的视图基础数据已经改变,视图应该自动 刷新。

*/
 public void removeBean(DataBean dataBean) {
  System.out.println("list remove before:"+list.size());
  list.remove(dataBean);
  notifyDataSetChanged(); // notifyDataSetChanged 通知附属的视图基础数据已经改变,视图应该自动 刷新。
  System.out.println("list remove after:"+list.size());
 }
 public void addBean(DataBean dataBean) {
  System.out.println("list remove before:"+list.size());
  list.add(dataBean);
  notifyDataSetChanged();
  System.out.println("list remove after:"+list.size());
 }
 public int getCount() {
  // TODO Auto-generated method stub
  return list.size();
 }

 public Object getItem(int position) {
  // TODO Auto-generated method stub
  return position;
 }

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

 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  ListItemView listItemView = new ListItemView();
  if (convertView == null) {
   // 获取list_item布局文件的视图
   convertView = listContainer.inflate(R.layout.newslist_item_focus, null);
   // 获取控件对象
   
   listItemView.digest = (TextView) convertView
     .findViewById(R.id.newslist_item_digest);
   listItemView.source = (TextView) convertView
     .findViewById(R.id.newslist_item_source);
   // 设置控件集到convertView
   convertView.setTag(listItemView);
  } else {

   listItemView = (ListItemView) convertView.getTag();
  }
  // 设置文字和图片
  DataBean databean = new DataBean();
  databean =list.get(position);
  System.out.println("---"+databean.toString()+list.get(position).toString());
  listItemView.digest.setText(databean.getDetails()+" ");
  listItemView.source.setText(databean.getSource()+" ");
  return convertView;
 }
 
   class ListItemView { // 自定义控件集
  
   TextView digest;
   TextView source;
  
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值