Artículos personalizados de ListView repetidos

Estoy tratando de agregar una vista de texto dinámica a los elementos de la vista de lista, las vistas de visualización pueden ser de 1 a 2 o más dependiendo de los datos que he logrado agregar la vista de texto, pero el problema es que las vistas de texto se repiten en el desplazamiento.

Estoy creando un nuevo objeto de vista de texto cada vez en bucle. Soy consciente del problema de que Android intenta reutilizar la vista existente, pero tengo que agregar una nueva vista cada vez.

Aquí está mi código en el adaptador personalizado:

public class ViewHolder {
    TextView text1;
    LinearLayout linearLayout;
    TextView t;
    TextView t1;
}

método getView

public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder holder;

    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.two_item_icon_text, null);
        holder = new ViewHolder();
        holder.text1 = (TextView) convertView.findViewById(R.id.text1);

        convertView.setTag(holder);
    } else {

        holder = (ViewHolder) convertView.getTag();

    }

    holder.linearLayout = (LinearLayout) convertView.findViewById(R.id.lin_lay_dynamic);
    holder.text1.setText("" + DATA1[position]);
    String tmp, dateparsed;
    dateparsed = DATA1[position].substring(0, DATA1[position].indexOf(":"));
    for (int x = 0; x < calendareventholder1.size(); x++) {

        objHolder = (CalendarEventHolder) calendareventholder1.get(x);

        if (objHolder.opendate.equals(displaydate[current])) {

            tmp = objHolder.dtstarttime.toString().substring(0, objHolder.dtstarttime.toString().indexOf(":"));

            if (Integer.parseInt(tmp) >= Integer.parseInt(dateparsed) && Integer.parseInt(tmp) < Integer.parseInt(dateparsed) + 1) {
                holder.t = new TextView(convertView.getContext());
                holder.t.setText(":-d ");
                holder.t.setOnClickListener(this);

                if (Common.isChildSessionAlerted(String.valueOf(objHolder.id), getApplicationContext(), object1)) {

                    holder.t.setText(holder.t.getText() + objHolder.dtstarttime + " " + objHolder.dtendtime + " :-a");
                } else {
                    holder.t.setText(holder.t.getText() + objHolder.dtstarttime + " " + objHolder.dtendtime);
                }
                holder.t.setTag(objHolder.id);
                holder.t.setTextSize(Common.getPreferenceInt(getApplicationContext(), Common.PREF_FONT_SIZE, 10));
                holder.t.setTextColor(Color.BLACK);
                holder.t.setText(getSmiledText(ScheduleActivity.this,
                holder.t.getText().toString()));
                holder.linearLayout.addView(holder.t);
                holder.t1 = new TextView(convertView.getContext());
                holder.t1.setOnClickListener(this);
                holder.t1.setText(objHolder.title);
                holder.t1.setTag(objHolder.id);

                holder.t1.setTextSize(Common.getPreferenceInt(getApplicationContext(), Common.PREF_FONT_SIZE, 10));
                holder.t1.setTextColor(Color.BLACK);
                holder.linearLayout.addView(holder.t1);
            }
        }
    }
    return convertView;
}