Android - ListView填充两次

Suc*_*chi 1 android listview

我正在使用以下代码填充我的ListView -

setListAdapter(new NotifListAdapter(this));
Run Code Online (Sandbox Code Playgroud)

我在我的活动的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;
    }

}
Run Code Online (Sandbox Code Playgroud)

Fem*_*emi 9

您的适配器正在显示以下数据rnList:您可能正在添加新对象rnList而不先清除它,这就是您返回活动时获得两倍行数的原因.在添加要rnList调用的数据之前rnList.clear();,这应该可以解决您的问题.