Reciclar visualização inflando linha diferente: - Obtendo exceção ao vincular os dados


Estou trabalhando noRecyceview com inflação de itens diferentes. Quando eu estouNÃO vinculando os dados emonBindViewHolder método deRecycleView do que não trava ..
Mas quando eu estou ligando os dados dentro doonBindViewHolder do que estou recebendoExceptionVerifique o meu código e deixe-me saber onde estou fazendo errado.

package com.tv.practise.adapter;

  /**
    Created by Ravindra Kushwaha on 10/10/16.
   */

public class RecycleDataAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

private Context mContext;
private ArrayList<RecycleBen> data;

public static class SimpleText extends RecyclerView.ViewHolder {
    TextView first_data_tv;

    public SimpleText(View v) {
        super(v);
        this.first_data_tv = (TextView) v.findViewById(R.id.first_data_tv);
    }
}

public   class SimpleImage extends  RecyclerView.ViewHolder {
    ImageView second_data_iv;

    public SimpleImage(View v) {
        super(v);
        this.second_data_iv = (ImageView) v.findViewById(R.id.second_data_iv);
    }
}

public  class SimpleImageWithText extends  RecyclerView.ViewHolder {
    TextView third_data_tv;
    ImageView third_iv;

    public SimpleImageWithText(View v) {
        super(v);
        this.third_data_tv = (TextView) v.findViewById(R.id.third_data_tv);
        this.third_iv = (ImageView) v.findViewById(R.id.third_iv);
    }
}

public RecycleDataAdapter(Context mContext, ArrayList<RecycleBen> data) {
    this.mContext = mContext;
    this.data = data;
}

@Override
public  RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    int listViewItemType = getItemViewType(viewType);
    View itemView;
    if(listViewItemType==1)
    {

        itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.recycle_first_item, parent, false);

        return new SimpleText(itemView

        );

    }
    else if(listViewItemType==2)
    {
        itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.recycle_fsecond_item, parent, false);
        return new SimpleImage(itemView);
    }
    else
    {
        itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.recycle_third_item, parent, false);
        return new SimpleImageWithText(itemView);
    }



}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    RecycleBen bean = data.get(position);

    if(holder.getItemViewType()==1)
    {
           /////HERE I AM GETTING THE EXCEPTION WHILE BINDIND DATA
        ((SimpleText)holder).first_data_tv.setText(bean.getName());

    }
    else if(holder.getItemViewType()==2)
    {

    }
    else {
          /////HERE I AM GETTING THE EXCEPTION WHILE BINDIND DATA((SimpleImageWithText)holder).third_data_tv.setText(bean.getName());
    }

}




@Override
public int getItemViewType(int position) {
    return Integer.parseInt(data.get(position).getType_row());
}

@Override
public int getItemCount() {
    return data.size();
  }
}

Exceção enquanto eu estou ligando os dados são os seguintes: -

3758-3758/com.tv.practise E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.tv.practise, PID: 3758
    java.lang.ClassCastException: com.tv.practise.adapter.RecycleDataAdapter$SimpleImageWithText cannot be cast to com.tv.practise.adapter.RecycleDataAdapter$SimpleText
            at com.tv.practise.adapter.RecycleDataAdapter.onBindViewHolder(RecycleDataAdapter.java:101)
            at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471)
            at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504)
            at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741)
            at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617)
            at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994)
            at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390)
            at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353)
            at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574)
            at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028)
            at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2625)
            at android.view.View.measure(View.java:18804)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
            at android.view.View.measure(View.java:18804)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
            at android.view.View.measure(View.java:18804)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954)
            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
            at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
            at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
            at android.view.View.measure(View.java:18804)
            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954)
            at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
            at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)
            at android.view.View.measure(View.java:18804)
            at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2112)
            at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1228)
            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1464)
            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1119)
            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6060)
            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
            at android.view.Choreographer.doCallbacks(Choreographer.java:670)
            at android.view.Choreographer.doFrame(Choreographer.java:606)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
            at android.os.Handler.handleCallback(Handler.java:746)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:148)
            at android.app.ActivityThread.main(ActivityThread.java:5443)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

questionAnswers(2)

yourAnswerToTheQuestion