私はアンドロイドがリストビューをカスタマイズしています。
しかし、私のリストビューがいくつかの項目をスクロールすると繰り返す!!
私のカスタムリストビューのコードは次のとおりです。
android listviewスクロール時の項目を繰り返す
static class ViewHolder {
ImageView imgPlaySound,imgShareList;
TextView txtCaption,txtDynamicTimer,txtDurationSplit,txtTotalTimer,txtHiden;
Spinner spTags;
SeekBar soundSeekBar;
LinearLayout linearSeek;
int positions;
}
@Override
public View getView(final int position,View convertView, final ViewGroup parent) {
vg = parent;
final ArrayList arrTagNameTemp = new ArrayList();
final ArrayList arrStartTimeTemp = new ArrayList();
final ArrayList arrStopTimeTemp = new ArrayList();
arrTagNameTemp.add("all");
final ViewHolder viewHolder;
if (convertView == null) {
LayoutInflater inflater = context.getLayoutInflater();
convertView = inflater.inflate(R.layout.listview, null);
viewHolder = new ViewHolder();
viewHolder.positions = position;
viewHolder.txtCaption = (TextView) convertView.findViewById(R.id.txtCaption);
viewHolder.txtDynamicTimer = (TextView) convertView.findViewById(R.id.txtDynamicTimer);
viewHolder.txtDurationSplit = (TextView) convertView.findViewById(R.id.txtTotalTimer);
viewHolder.imgPlaySound = (ImageView) convertView.findViewById(R.id.imgPlaySound);
viewHolder.imgShareList = (ImageView) convertView.findViewById(R.id.imgShareList);
viewHolder.linearSeek = (LinearLayout) convertView.findViewById(R.id.linearSeek);
viewHolder.soundSeekBar = (SeekBar) convertView.findViewById(R.id.seekBar1);
viewHolder.spTags = (Spinner) convertView.findViewById(R.id.spTags);
// viewHolder.imgPlaySound.setOnClickListener(vdClickListener);
convertView.setTag(viewHolder);
}
else
{
viewHolder = (ViewHolder) convertView.getTag();
}
/////////////////////////////////////////////////////////////////////////
final MenuItem strListItem = (MenuItem) arrSubject.get(position);
//viewHolder.txtCaption.setText(arrSubject.get(viewHolder.positions).toString());
viewHolder.txtCaption.setText(strListItem.getItemId());
return convertView;
}
私は、このために非常に困惑しています。
誰でもこの問題の解決に手助けできますか?
だけでなく 'arrSubject'リピート内の項目だけのデモです。 –
スクロールすると、各項目に対してgetView()メソッドが呼び出されます。 arrTagNameTemp.add( "all");を実行します。新しいアイテムを複数回追加し、コンストラクタに削除する –