notifyDataSetChanged listview内容没更新的问题

如红色部分所示,需在Adapter添加setData方法,当 listData中数据更改后,调用setData,为Adapter设置新的数据,此时调用notifyDataSetChanged() 就可以刷新内容了。
 
package com.baclock.adapter;

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

import com.baclock.R;
import com.baclock.entity.GISTrackEntity;

import java.util.List;

public class GISTrackAdapter extends BaseAdapter {

public static interface IMsgViewType {
int IMVT_FROM_MSG = 0;
int IMVT_TO_MSG = 1;
}

private static final String TAG = GISTrackAdapter.class.getSimpleName();

private List<GISTrackEntity> coll;

private Context ctx;

private LayoutInflater mInflater;

public GISTrackAdapter(Context context, List<GISTrackEntity> coll) {
ctx = context;
this.coll = coll;
mInflater = LayoutInflater.from(context);
}

public int getCount() {
return coll.size();
}

public Object getItem(int position) {
return coll.get(position);
}

public long getItemId(int position) {
return position;
}

// public int getItemViewType(int position) {
// // TODO Auto-generated method stub
// GISTrackEntity entity = coll.get(position);
//
// if (entity.getMsgType()) {
// return IMsgViewType.IMVT_FROM_MSG;
// } else {
// return IMsgViewType.IMVT_TO_MSG;
// }
// }

public int getViewTypeCount() {
// TODO Auto-generated method stub
return 2;
}

public void setData(List<GISTrackEntity> data)
{
// TODO Auto-generated method stub
this.coll = data;
}

public View getView(int position, View convertView, ViewGroup parent) {

final GISTrackEntity entity = coll.get(position);

ViewHolder viewHolder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.layout_gis_track, null);

viewHolder = new ViewHolder();
viewHolder.tvTime = (TextView) convertView.findViewById(R.id.tvTime);
viewHolder.ivSelect = (ImageView) convertView.findViewById(R.id.ivSelect);

convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}

viewHolder.tvTime.setText(entity.getTag());
return convertView;
}

static class ViewHolder {
public TextView tvTime;
public ImageView ivSelect;
}
}
 
listData.add(item); 
choosePLvAdapt.setData(listData);
choosePLvAdapt.notifyDataSetChanged();
posted @ 2016-03-21 16:15  fanhq  阅读(297)  评论(0编辑  收藏  举报