我使用以下代码填充ListView -
setListAdapter(new NotifListAdapter(this));
我在我的活动的onCreate()方法中调用它,并且在第一次创建时,它填充正常。但是当我返回并返回此活动时,它会在List中显示两倍的行数!我检查了我的数据库,它绝对不是后端问题。此外,当我强制关闭活动并重新启动它时,它会填充正常。任何人都可以提供对这个问题的见解吗?
这是列表适配器 -
public class NotifListAdapter extends BaseAdapter {
public NotifListAdapter(Context context) {
mContext = context;
}
public int getCount() {
return rnList.size();
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
NotifView nv;
RichNotification rn = rnList.get(position);
if (convertView == null) {
nv = new NotifView(mContext, rn.getSubject(),
rn.getContent(), rn.getDate());
} else {
nv = (NotifView) convertView;
nv.setTitle(rn.getSubject());
nv.setDialogue(rn.getContent());
nv.setDate(rn.getDate());
}
return nv;
}
/**
* Remember our context so we can use it when constructing views.
*/
private Context mContext;
@Override
public Object getItem(int position) {
return null;
}
}
答案 0 :(得分:9)
您的适配器正在显示来自rnList
的数据:您可能正在向rnList
添加新对象而不先清除它,这就是您返回活动时获得两倍行数的原因。在将数据添加到rnList
调用rnList.clear();
之前,这可能会解决您的问题。