I want to parse two view in one recyclerview but i get the issue while parsing json data, while parsing i am confused about how to parse tow bean class using parent bean class. my code is below MainFragment.
public class SensorFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
private final String TAG = "MainActivity";
private RecyclerView recyclerView;
private LinearLayoutManager layoutManager;
private SensorAdapter adapter;
private OnFragmentInteractionListener mListener;
List<SensorResposne> sensorResposnes;
List<TemperatorSensorList> temperatorSensorLists;
public SensorFragment() {
    // Required empty public constructor
}
/**
 * Use this factory method to create a new instance of
 * this fragment using the provided parameters.
 *
 * @param param1 Parameter 1.
 * @param param2 Parameter 2.
 * @return A new instance of fragment SensorFragment.
 */
// TODO: Rename and change types and number of parameters
public static SensorFragment newInstance(String param1, String param2) {
    SensorFragment fragment = new SensorFragment();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    fragment.setArguments(args);
    return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    //return inflater.inflate(R.layout.fragment_fragment_three, container, false);
    View view = inflater.inflate(R.layout.fragment_sensor, container, false);
    recyclerView = view.findViewById(R.id.recyclerViewSensor);
    // recyclerView.addItemDecoration(new SimpleDividerItemDecoration(this));
    temperatorSensorLists = new ArrayList<>();
    sensorResposnes = new ArrayList<SensorResposne>();
    layoutManager = new LinearLayoutManager(getActivity());
    recyclerView.setLayoutManager(layoutManager);
    adapter = new SensorAdapter(getActivity(), sensorResposnes, true, true);
    recyclerView.setAdapter(adapter);
    requestJsonObject();
    return view;
}
private void requestJsonObject() {
    RequestQueue queue = Volley.newRequestQueue(getActivity());
    String potentialId = SitesUtil.getInstance().getSelectedPotentialId();
    String sensorUrl = UrlUtility.getSensorUrl(potentialId);
    StringRequest stringRequest = new StringRequest(Request.Method.GET, sensorUrl, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.d(TAG, "Response " + response);
            Gson gson = new Gson();
            SensorResposne sensorResposne = gson.fromJson(response, SensorResposne.class);
            for (SensorList data : sensorResposne.getSensorList()) {
                if (data != null) {
                    data.getName();
                    data.getStatus();
                    sensorResposnes.add(data);
                }
            }
            for (TemperatorSensorList data : sensorResposne.getTemperatorSensorList()) {
                if (data != null) {
                    data.getSensorName();
                    // data.getTemperatureValue();
                    temperatorSensorLists.add(data);
                }
            }
            adapter = new SensorAdapter(getActivity(), sensorResposnes, true, true);
            recyclerView.setAdapter(adapter);
            Log.d("recycleviewResposne:", "resposne");
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d(TAG, "Error " + error.getMessage());
        }
    });
    queue.add(stringRequest);
}
// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
    if (mListener != null) {
        mListener.onFragmentInteraction(uri);
    }
}
@Override
public void onAttach(Context context) {
    super.onAttach(context);
    if (context instanceof OnFragmentInteractionListener) {
        mListener = (OnFragmentInteractionListener) context;
    } else {
        throw new RuntimeException(context.toString()
                + " must implement OnFragmentInteractionListener");
    }
}
@Override
public void onDetach() {
    super.onDetach();
    mListener = null;
}
public interface OnFragmentInteractionListener {
    // TODO: Update argument type and name
    void onFragmentInteraction(Uri uri);
}}
And Adpater for parsing Json Data:
public class SensorAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private boolean isHeader;
private boolean isFooter;
private List<SensorResposne> data;
private Context context;
public static final int VIEW_HEADER = 0;
public static final int VIEW_FOOTER = 2;
public static final int VIEW_ITEM = 1;
public SensorAdapter(Context context, List<SensorResposne> data, boolean isHeader, boolean isFooter) {
    this.context = context;
    this.data = data;
    this.isHeader = isHeader;
    this.isFooter = isFooter;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (viewType == VIEW_HEADER) {
        return new RecyclerViewHolders(LayoutInflater.from(context).inflate(R.layout.sensor_layout, parent, false));
    } else {
        return new Temperature(LayoutInflater.from(context).inflate(R.layout.temperature_list, parent, false));
    }
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    if (holder instanceof RecyclerViewHolders) {
        ((RecyclerViewHolders) holder).textSensor.setText(data.get(position).getSensorList().get(position).getName());
        if (data.get(position).getSensorList().get(position).getStatus().equals("OK")) {
            ((RecyclerViewHolders) holder).mImageConnected.setImageResource(R.drawable.ic_connection_stauts);
        } else {
            ((RecyclerViewHolders) holder).mImageConnected.setImageResource(R.drawable.ic_notconnetced);
        }
       /* ((RecyclerViewHolders) holder).textSensor.setText(data.get(position).getName());
        if (data.get(position).getStatus().equals("OK"))
        {
            ((RecyclerViewHolders)holder). mImageConnected.setImageResource(R.drawable.ic_connection_stauts);
        }else
        {
            ((RecyclerViewHolders)holder). mImageConnected.setImageResource(R.drawable.ic_notconnetced);
        }*/
        Log.d("Item View", "Binding Item header at" + position);
    } else if (holder instanceof Temperature) {
        ((Temperature) holder).tvTemrature.setText(data.get(position).getTemperatorSensorList().get(position).getSensorName());
    }
}
// to Check the number of item
@Override
public int getItemCount() {
    int itemCount = data.size();
    //if header is required then increase the number of count by one
    if (isHeader) {
        itemCount = itemCount + 1;
    }
    if (isFooter) {
        itemCount = itemCount + 1;
    }
    return itemCount;
}
public SensorResposne getName(int position) {
    if (isHeader) {
        return data.get(position - 1);
    } else return data.get(position);
}
@Override
public int getItemViewType(int position) {
    if (isHeader && isHeader(position))
        return VIEW_HEADER;
    else if (isFooter && isFooter(position)) {
        return VIEW_FOOTER;
    } else return VIEW_ITEM;
}
private boolean isFooter(int position) {
    return position == getItemCount() - 1;
}
private boolean isHeader(int position) {
    //Check the position of item if item at position 0 then return true else false
    return position == 0;
}
public class RecyclerViewHolders extends RecyclerView.ViewHolder implements View.OnClickListener {
    TextView textSensor;
    ImageView mImageConnected;
    public RecyclerViewHolders(View itemView) {
        super(itemView);
        itemView.setOnClickListener(this);
        textSensor = (TextView) itemView.findViewById(R.id.textSensor);
        mImageConnected = itemView.findViewById(R.id.imageConnect);
    }
    @Override
    public void onClick(View view) {
    }
}
public class Temperature extends RecyclerView.ViewHolder implements View.OnClickListener {
    TextView tvTemrature, tvValue;
    public Temperature(View itemView) {
        super(itemView);
        itemView.setOnClickListener(this);
        tvTemrature = itemView.findViewById(R.id.sensorName);
        tvValue = itemView.findViewById(R.id.tvTempValue);
    }
    @Override
    public void onClick(View v) 
    {
    }
}
}
I have parent class called sensor resposne based on that class i want to parse tow baen class getter and setter method but am coufused on that my parent bean class is:
public class SensorResposne {
@SerializedName("sensorList")
@Expose
private List<SensorList> sensorList = null;
@SerializedName("temperatorSensorList")
@Expose
private List<TemperatorSensorList> temperatorSensorList = null;
public List<SensorList> getSensorList() {
    return sensorList;
}
public void setSensorList(List<SensorList> sensorList) {
    this.sensorList = sensorList;
}
public List<TemperatorSensorList> getTemperatorSensorList() {
    return temperatorSensorList;
}
public void setTemperatorSensorList(List<TemperatorSensorList> temperatorSensorList) {
    this.temperatorSensorList = temperatorSensorList;
}}
Am not able to figure out how to parse these tow beans class in single adapter using for multiple view in recyclerview any help
 
     
     
     
    