Json + Fragment + ListView

Ola galera, estou desenvolvendo um app e estou encontrando problemas ao tentar preencher uma ListView que encontra-se dentro de um Fragment a partir de um Json.

Alguém conseguiria me ajudar e ver onde estou errado.

Abaixo segue o código do meu Fragment

package br.com.tapanovisual.tvisual.fragments;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import br.com.tapanovisual.tvisual.Principal;
import br.com.tapanovisual.tvisual.R;
import br.com.tapanovisual.tvisual.adapters.ReservasAdapter;
import br.com.tapanovisual.tvisual.listviews.objetos.Reservas;

// Created by thiago.c.melo on 17/01/2016.

public class FragmentFavoritos extends Fragment {

//Progress Dialog
private ProgressDialog pDialog;
//URL arquivo PHP
//private static String url = ("http://tapanovisual.esy.es/selectUltimasReservas.php");
//Node Nomes JSON
private static final String TAG_NOME = "nome";
//Criando JSONArray
JSONArray JsonArray = null;
ArrayList<HashMap<Integer, Reservas>> fixtureList;
ListView lv;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    //HashMap para ListView
    fixtureList = new ArrayList<HashMap<Integer, Reservas>>();
    View view = inflater.inflate(R.layout.fragment_favoritos, container, false);
    lv = (ListView) view.findViewById(R.id.fixture_list);
    //Buscando Dados Bando de Dados
    new LoadFixture().execute();
    return view;
}
class LoadFixture extends AsyncTask<String, String, String>{
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(getActivity());
        pDialog.setMessage("Carregando...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(false);
        pDialog.show();
    }
    @Override
    protected String doInBackground(String... params) {
        Reservas objReserva = new Reservas();
        try {
            URL url = new URL("http://tapanovisual.esy.es/selectUltimasReservas.php");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.connect();
            InputStream stream = conn.getInputStream();
            BufferedReader buffer = new BufferedReader(new InputStreamReader(stream));
            StringBuffer sb = new StringBuffer();
            String line = "";
            while ((line = buffer.readLine()) != null){
                sb.append(line);
            }
            String finalJson = sb.toString();
            JSONObject parentObject = new JSONObject(finalJson);
            JSONArray parentArray = parentObject.getJSONArray("estabelecimentos");
            for (int i = 0; i < parentArray.length(); i++){
                    JSONObject c = parentArray.getJSONObject(i);
                    String nome = c.getString("nome");
                    HashMap<Integer, Reservas>map = new HashMap<Integer, Reservas>();
                    objReserva.setNome(nome);
                    map.put(i, objReserva);
                    fixtureList.add(map);
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }
    @Override
    protected void onPostExecute(String s) {
        pDialog.dismiss();
        lv.setAdapter(new ReservasAdapter(getActivity(), fixtureList));
    }
}

}

Abaixo o código Item_reserva

<?xml version="1.0" encoding="utf-8"?>

        <TextView
            android:text="Instituto de Beleza Natural"
            android:id="@+id/text_nome_item_reserva"
            android:layout_marginLeft="70dp"
            android:layout_marginTop="10dp"
            android:textSize="16sp"
            android:textColor="@color/texto_principal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

XML do Fragment

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.Toolbar
    android:background="@color/amarelo_escuro"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:id="@+id/view">
    <ImageButton
        android:background="@drawable/seta_esquerda"
        android:layout_width="25dp"
        android:layout_height="25dp"/>
    <TextView
        android:text="Últimas Reservas"
        android:textColor="@color/branco"
        android:textSize="15dp"
        android:layout_marginLeft="30dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</android.support.v7.widget.Toolbar>
    <RelativeLayout
        android:layout_marginTop="50dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ListView
            android:id="@+id/fixture_list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </ListView>
    </RelativeLayout>

Código do Reserva

package br.com.tapanovisual.tvisual.listviews.objetos;

public class Reservas {

private String nome;
public String getNome(int position) {
    return nome;
}
public void setNome(String nome) {
    this.nome = nome;
}

}

Adapter

package br.com.tapanovisual.tvisual.adapters;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import br.com.tapanovisual.tvisual.R;
import br.com.tapanovisual.tvisual.listviews.objetos.Reservas;

public class ReservasAdapter extends BaseAdapter {

private ArrayList listData;
private LayoutInflater layoutInflater;
public ReservasAdapter(Context context, ArrayList listData){
    this.listData = listData;
    layoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
    return listData.size();
}
@Override
public Object getItem(int position) {
    return listData.get(position);
}
@Override
public long getItemId(int position) {
    return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = layoutInflater.inflate(R.layout.item_reserva, null);
        holder = new ViewHolder();
        holder.nome = (TextView) convertView.findViewById(R.id.text_nome_item_reserva);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    Reservas reservas = (Reservas) listData.get(position);
    //holder.nome.setText(reservas.getNome());
    return convertView;
}
static class ViewHolder {
    TextView nome;
}

}

Está sendo apresentado erro na parte abaixo: O Aplicativo fecha sozinho!

Reservas reservas = (Reservas) listData.get(position);
holder.nome.setText(reservas.getNome());

Log de Erro

03-14 18:36:34.015 13688-13688/br.com.tapanovisual.tvisual E/IMGSRV: :0: PVRDRMOpen: TP3, ret = 43
03-14 18:36:34.045 13688-13688/br.com.tapanovisual.tvisual E/IMGSRV: :0: PVRDRMOpen: TP3, ret = 47
03-14 18:36:34.055 13688-13688/br.com.tapanovisual.tvisual E/IMGSRV: :0: PVRDRMOpen: TP3, ret = 48
03-14 18:36:34.055 13688-13688/br.com.tapanovisual.tvisual E/IMGSRV: :0: PVRDRMOpen: TP3, ret = 48
03-14 18:36:34.055 13688-13688/br.com.tapanovisual.tvisual E/IMGSRV: :0: PVRDRMOpen: TP3, ret = 48
03-14 18:36:34.095 13688-13688/br.com.tapanovisual.tvisual E/IMGSRV: :0: PVRDRMOpen: TP3, ret = 49
03-14 18:38:59.005 13688-13688/br.com.tapanovisual.tvisual E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.tapanovisual.tvisual, PID: 13688
java.lang.ClassCastException: java.util.HashMap cannot be cast to br.com.tapanovisual.tvisual.listviews.objetos.Reservas
at br.com.tapanovisual.tvisual.adapters.ReservasAdapter.getView(ReservasAdapter.java:64)
at android.widget.AbsListView.obtainView(AbsListView.java:2263)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
at android.widget.ListView.onMeasure(ListView.java:1175)
at android.view.View.measure(View.java:16615)
at android.widget.RelativeLayout.measureChild(RelativeLayout.java:689)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:473)
at android.view.View.measure(View.java:16615)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
at android.view.View.measure(View.java:16615)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1489)
at android.view.View.measure(View.java:16615)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
at android.view.View.measure(View.java:16615)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5147)
at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:610)
at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:78)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1132)
at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:675)
at android.view.View.measure(View.java:16615)
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:940)
at android.view.View.measure(View.java:16615)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5147)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
at android.view.View.measure(View.java:16615)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5147)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16615)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5147)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16615)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5147)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16615)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5147)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
at android.view.View.measure(View.java:16615)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2065)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1192)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1401)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1079)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5948)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper

Se alguém puder me ajudar e me dizer onde estou errando.
Muito obrigado!!!

Você tá fazendo um ArrayList de um HashMap?! Não é mais fácil usar somente um HashMap?[quote=“ThiagoCMelo, post:1, topic:324269”]

public class FragmentFavoritos extends Fragment  {
     //...
    ArrayList<HashMap<Integer, Reservas>> fixtureList;

}
[/quote]

Quando você faz:

Você está pegando um HashMap e não uma Reservas, causando o seu ClassCastExeption que até diz os tipos envolvidos:

java.util.HashMap cannot be cast to br.com.tapanovisual.tvisual.listviews.objetos.Reservas

Sugestão: tente trabalhar somente com o HashMap em vez de um ArrayList<HashMap<..,..>>.

Valew Felipe. Vou tentar e dou um retorno se conseguir.
Muito obrigado pela resposta.