Llamar a un Fragment desde un ListFragment

  • Respuestas:0
Grover V.
  • Posts del Foro: 1

21 may. 2016 19:34:57 vía Web

Hola a todos quería saber si me pueden apoyar, tengo un proyecto en el cuál he implementado un tablayout con 3 tabs, para cada tabs tengo un fragment asignado, para el primer tab tengo un listfragment y muestro la lista de forma correcta, pero al seleccionar un elemento de la lista quiero que el fragment cambie por otro que tambien va mostrar otra lista.

Por ejemplo tengo una lista de categorias, en el fragment de tipo listfragment en el primer tab, pero al seleccionar un elemento de la lista quiero mostrar los items hijo de esa categoria en otra lista, pero en el mismo tab, alcanzo el código, como manejo ese cambio, es decir llamar otro fragmento del tipo listfragment desde un listfragment.

Archivo: TabCategoríasFragment.java

package com.gydsoluciones.grva.recetasperu;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.ListFragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.JsonArrayRequest;

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

/**
* Created by grva on 20/05/2016.
*/
public class TabCategoriasFragment extends ListFragment{

String[] categorias = {"Licores","Sopas","Pescados y Mariscos","Arroces","Ensaladas","Repostería","Salsas"};
Integer[] pics = {R.drawable.licores,R.drawable.sopas,R.drawable.pescadosmariscos,R.drawable.arroces,R.drawable.ensaladas,R.drawable.reposteria,R.drawable.salsas};
String[] descripcion = {
        "Los mejores licores","Selección de las mejores sopas y caldos",
        "Los mejores platos a base de pescados y mariscos","Arroz con pollo, Arroz chaufa, entre otros",
        "Las mejores ensaladas frescas","Lo mejor para endulzar el momento","Las mejores salsas basadas en la variedad peruana"

};

@Override

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
CategriaListAdapter adapter = new CategriaListAdapter(getActivity(),categorias,pics,descripcion);
setListAdapter(adapter);
return inflater.inflate(R.layout.lista_categorias,container,false);
}

@Override

public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
String itemText = categorias[+position];

    String url = "url web service";
    ProgressDialog pDialog = new ProgressDialog(getContext());
    pDialog.setMessage("Cargando...");
    pDialog.show();

    final JsonArrayRequest req = new JsonArrayRequest(url, new Response.Listener<JSONArray>() {
        @Override

public void onResponse(JSONArray response) {
Log.d("json_array_req",response.toString());
try {
String[] recetas = new String[response.length()];
for (int i = 0; i < response.length(); i++) {
JSONObject receta = (JSONObject) response.get(i);
recetas[i] = receta.getString("titurece");
}
}catch(JSONException e)
{
Log.d("json_array_req", e.toString());
}
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
VolleyLog.d("json_array_req","Error:" + error.getMessage());
}
});
AppController.getInstance().addToRequestQueue(req,"json_array_req");
pDialog.hide();
}
}

Contestar