Scrolling a view without lose data
<p>I have an Scrollview in my app that has quite a large amount of data to load, all of them are TextViews that load an object attribute, but when i scroll the view, it sometimes load the object content to be shown, sometimes not. So what can i do to make this happen?</p>

<p>Here's the ViewHolder class(it's kinda ugly):
Something i forgot to mention, this class extends BaseAdapter, so, there's no activity </p>

<pre><code>private class ViewHolder {
    TextView txtName;
    TextView txtFaults;
    TextView txtA;
    TextView txtB;
    TextView txtC;
    TextView txtD;
    TextView txtE;
    TextView txtF;
    TextView txtG;
    TextView txtH;
    TextView txtI;
    TextView txtPFinal;
    TextView txtPart;
    TextView txtMF;
    TextView txtMP;
    TextView txtForm;
    TextView txtMN;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    LayoutInflater inflater = activity.getLayoutInflater();

    if (convertView == null) {
        convertView = inflater.inflate(R.layout.row, null);
        holder = new ViewHolder();
        holder.txtName = (TextView) convertView
                .findViewById(R.id.txtMateria);
        holder.txtFaults = (TextView) convertView
                .findViewById(R.id.txtFaults);
        holder.txtA = (TextView) convertView.findViewById(R.id.txtA);
        holder.txtB = (TextView) convertView.findViewById(R.id.txtB);
        holder.txtC = (TextView) convertView.findViewById(R.id.txtC);
        holder.txtD = (TextView) convertView.findViewById(R.id.txtD);
        holder.txtE = (TextView) convertView.findViewById(R.id.txtE);
        holder.txtF = (TextView) convertView.findViewById(R.id.txtF);
        holder.txtG = (TextView) convertView.findViewById(R.id.txtG);
        holder.txtH = (TextView) convertView.findViewById(R.id.txtH);
        holder.txtI = (TextView) convertView.findViewById(R.id.txtI);
        holder.txtPFinal = (TextView) convertView.findViewById(R.id.txtPFinal);
        holder.txtPart = (TextView) convertView
                .findViewById(R.id.txtPart);
        holder.txtMF = (TextView) convertView.findViewById(R.id.txtMF);
        holder.txtMP = (TextView) convertView.findViewById(R.id.txtMP);
        holder.txtForm = (TextView) convertView
                .findViewById(R.id.txtForm);
        holder.txtMN = (TextView) convertView
                .findViewById(R.id.txtMN);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    Materia materia = list.get(position);
    holder.txtName.setText(materia.getMateria());
    holder.txtName.setTypeface(null, Typeface.BOLD);
    holder.txtFaults.setText("Faults:"
            + Double.toString(materia.getFaltas()) + "%");

    holder.txtA.setText("A:" + Double.toString(materia.getA()));
    if (materia.getA() == 98.9)
        holder.txtA.setVisibility(View.GONE);

    holder.txtB.setText("B:" + Double.toString(materia.getB()));
    if (materia.getB() == 98.9)
        holder.txtB.setVisibility(View.GONE);

    holder.txtC.setText("C:" + Double.toString(materia.getC()));
    if (materia.getC() == 98.9)
        holder.txtC.setVisibility(View.GONE);

    holder.txtD.setText("D:" + Double.toString(materia.getD()));
    if (materia.getD() == 98.9)
        holder.txtD.setVisibility(View.GONE);

    holder.txtE.setText("E:" + Double.toString(materia.getE()));
    if (materia.getE() == 98.9)
        holder.txtE.setVisibility(View.GONE);

    holder.txtF.setText("F:" + Double.toString(materia.getF()));
    if (materia.getF() == 98.9)
        holder.txtF.setVisibility(View.GONE);

    holder.txtG.setText("G:" + Double.toString(materia.getG()));
    if (materia.getG() == 98.9)
        holder.txtG.setVisibility(View.GONE);

    holder.txtH.setText("H:" + Double.toString(materia.getH()));
    if (materia.getH() == 98.9)
        holder.txtH.setVisibility(View.GONE);

    holder.txtI.setText("I:" + Double.toString(materia.getI()));
    if (materia.getI() == 98.9)
        holder.txtI.setVisibility(View.GONE);

    holder.txtPFinal.setText("PF:" + Double.toString(materia.getPf()));
    if (materia.getPfinal() == 98.9)
        holder.txtPFinal.setVisibility(View.GONE);

    holder.txtPart.setText("Partic:"
            + Double.toString(materia.getPartic()));
    if (materia.getPart() == 98.9)
        holder.txtPart.setVisibility(View.GONE);

    holder.txtMF.setText("MF:" + Double.toString(materia.getMf()));
    if (materia.getMf() == 98.9)
        holder.txtMF.setVisibility(View.GONE);

    holder.txtMP.setVisibility(View.GONE);
    if (!materia.getForm().toLowerCase().contains("inform")) {
        holder.txtMP.setText("MP:"
                + String.format("%.2f", materia.getMP()));
        holder.txtMP.setVisibility(View.VISIBLE);
    }
    holder.txtMN.setText("MN:LongClick to simulate");
    holder.txtMN.setTextColor(Color.GRAY);
    if (materia.getFormula().toLowerCase().contains("inform"))
        holder.txtMN
                .setText("Form not avaiable");

    holder.txtForm.setText("Form not informed");
    if (!materia.getFormula().toLowerCase().contains("inform"))
        holder.txtForm.setText("Form:" + materia.getForm());

    return convertView;
}
</code></pre>

<p>Tks</p>
