私のアプリには、独自の ListItemStyle (独自の XML) を持つ Listview があります。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 に何度も追加されるという問題があります。現在は次のようになっています。
コードの何が問題になっていますか?