0

在我的应用程序中,我有一个带有我自己的 ListItemStyle(自己的 XML)的 L​​istview。我将项目添加到 ListView 的代码如下所示:

Schueler s[] = new Schueler[]
{
     new Schueler("vName", "nName", new Date()).setNoten(new Klausur(50, 4, 3)),
     new Schueler("vName", "nName", new Date()).setNoten(new Klausur(100, 1, 3))
}

@Override
public View getView(int position, View convertView, ViewGroup parent) 
{
    View row = convertView;

    if(row == null)
    {
        LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, null);
    }

    Schueler s = data[position];

    if(s != null)
    {
        TextView vName = (TextView) row.findViewById(R.id.vName);
        TextView nName = (TextView) row.findViewById(R.id.nName);
        LinearLayout scroll = (LinearLayout) row.findViewById(R.id.notenScroll);

        HorizontalScrollView hsv = (HorizontalScrollView)              row.findViewById(R.id.horizontalScrollView1);

        vName.setText(s.getvName());
        nName.setText(s.getnName());

        for(int i = 0; i < s.getNoten().size(); i++)
        {
            LayoutInflater factory = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View klausur = factory.inflate(R.layout.klausur_item, null);

            TextView pkt  = (TextView) klausur.findViewById(R.id.pkt);
            TextView note = (TextView) klausur.findViewById(R.id.note);
            TextView gew  = (TextView) klausur.findViewById(R.id.gew);

            pkt.setText(String.valueOf(s.getNoten().get(i).getPunkte()));
            note.setText(String.valueOf(s.getNoten().get(i).getNote()));
            gew.setText(String.valueOf(s.getNoten().get(i).getGewichtung()));

            scroll.addView(klausur);
        }
    }

    return row;
}

布局一切正常,但我的问题是一些项目被多次添加到我的 ListView 中。现在看起来像这样:

在此处输入图像描述

守则有什么问题?

4

1 回答 1

1

视图将在列表视图中回收。所以请在这里查看解决方案: Android ListView 适配器不会刷新

于 2013-05-06T06:30:16.993 回答