0

All graphs in the vybrations arraylist are unique but getView is repeating the elements for the list. I am correctly using convertView but it is still repeating the same drawings across the list. I don't know what am I doing wrong here?

Here's the link to what I am getting: https://www.dropbox.com/s/jlt3mr7h5vzb14q/Untitled.jpg

public class AdapterVybrations extends BaseAdapter
{
private Context context;
public ArrayList<Vybration> vybrations;


public AdapterVybrations(Activity context, ArrayList<Vybration> arrayVybrations)
{
    this.context = context;
    this.vybrations = arrayVybrations;
}


@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
    View v = convertView;
    final Vybration vybe = vybrations.get(position);

    if (v == null)
    {
        LayoutInflater vi = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.vybrations_item, null);
    }

    LinearLayout layout = (LinearLayout) v.findViewById(R.id.layoutVybration);
    ImageView play = (ImageView) v.findViewById(R.id.imageViewPlay);

    final ListView lv = (ListView) parent;

    //initialize graph
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setDisplayValues(false);
    renderer.setZoomButtonsVisible(false);
    renderer.setShowGrid(false);
    renderer.setShowAxes(false);
    renderer.setShowLabels(false);
    renderer.setShowLegend(false);
    renderer.setPanEnabled(false);
    renderer.setZoomEnabled(false);
    renderer.setAntialiasing(true);
    renderer.setMargins(new int[] { 10, 10, 10, 10 });
    renderer.setPanEnabled(false, false);
    renderer.setYAxisMax(15);
    renderer.setXAxisMax(100);
    XYSeriesRenderer rendererSeries = new XYSeriesRenderer();
    rendererSeries.setColor(Color.GREEN);
    rendererSeries.setFillPoints(true);
    rendererSeries.setLineWidth(2);
    renderer.addSeriesRenderer(rendererSeries);

    //add data series to graph
    dataset.addSeries(vybe.getGraphSeries());
    GraphicalView graphView = ChartFactory.getTimeChartView(context, dataset, renderer, "Test");

    //add graph to linear layout
    layout.addView(graphView);

    layout.setOnTouchListener(new OnTouchListener()
    {

        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
            Log.v("touched", "layout view touched");
            return true;
        }
    });

    play.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            vybe.play(false);
            Log.v("series", vybrations.get(position).getGraphSeriesString());
            Log.v("clickposition", position + "");
        }
    });

    if (lv.getChoiceMode() != ListView.CHOICE_MODE_NONE)
    {
        SparseBooleanArray checked = lv.getCheckedItemPositions();
        if (checked.get(position))
            v.setBackgroundColor(context.getResources().getColor(android.R.color.holo_blue_light));
        else
            v.setBackgroundColor(context.getResources().getColor(android.R.color.transparent));
    }

    return v;
}


@Override
public int getCount()
{
    return this.vybrations.size();
}


@Override
public Object getItem(int position)
{
    return this.vybrations.get(position);
}


@Override
public long getItemId(int position)
{
    return position;
}

}
tshepang
  • 12,111
  • 21
  • 91
  • 136
Bam
  • 1,183
  • 1
  • 9
  • 13
  • @ Bam : How many elements do u have in the arraylist? – Anukool Feb 12 '13 at 12:57
  • A total of 15 elements. They start repeating on the 10th. Have a look at https://www.dropbox.com/s/jlt3mr7h5vzb14q/Untitled.jpg. The first 9 appear fine, after that they start repeating. – Bam Feb 12 '13 at 13:17
  • Did you try with Base Adapter? – Anukool Feb 12 '13 at 14:01
  • Yes, I'm implementing BaseAdapter. I've edited the code and added the entire class for you to look. – Bam Feb 12 '13 at 14:47
  • Solved: http://stackoverflow.com/questions/13985240/custom-listview-items-repeated?rq=1 – Bam Feb 14 '13 at 13:43

1 Answers1

0

Solved: Custom ListView Items repeated.

I did try the ViewHolder design but wasn't removing old views. holder.linearLayout.removeAllViews() did the trick. Works perfectly now.

Community
  • 1
  • 1
Bam
  • 1,183
  • 1
  • 9
  • 13