Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 02/04/16, 22:00:45
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
onItemClick

Bueno otra consultita, como puedo abrir un fragment con onItemClick, o voy mal encaminado? Los activity sin problemas, pero los fragments me da error.

Código:
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.herprogramacion.restaurantericoparico.R;
import com.herprogramacion.restaurantericoparico.adapters.Calendario_Volley_Adapter;
import com.herprogramacion.restaurantericoparico.tabs.TabActual;
import com.herprogramacion.restaurantericoparico.ui.ActividadConfiguracion;


public class Frag_Calendario_Cadetes extends Fragment implements SwipeRefreshLayout.OnRefreshListener {

    SwipeRefreshLayout swipeLayout;
    Fragment fragment;

    // Atributos
    ListView listView;
    ArrayAdapter adapter;

     @override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        View view = inflater.inflate(R.layout.jornadas_list, null);

        TextView miTexto = (TextView)view.findViewById(R.id.mi_java);
        miTexto.setText("CALENDARIO CADETES");

        swipeLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_container);
        swipeLayout.setOnRefreshListener(this);
        swipeLayout.setColorSchemeResources(android.R.color.holo_blue_bright,
                android.R.color.holo_green_light,
                android.R.color.holo_orange_light,
                android.R.color.holo_red_light);


        // Obtener instancia de la lista
        listView = (ListView) view.findViewById(android.R.id.list);

        // Crear adaptador y setear

        adapter = new Calendario_Volley_Adapter(getActivity());


        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {


             @override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {

                Fragment fragment = null;
                FragmentManager fragmentManager = getSupportFragmentManager();

                switch (position){

                    case 0:
                        fragment = new TabActual();
                        break;

                    case 2:

                        Intent intent = new Intent(getActivity(), ActividadConfiguracion.class);
                        startActivity(intent);

                        break;
                }

                if (fragment != null) {
                    fragmentManager
                            .beginTransaction()
                            .replace(R.id.swipe_container, fragment)
                            .commit();
                }
            }

            private FragmentManager getSupportFragmentManager() {
                return null;
            }


        });

        return view;
    }

     @override
    public void onRefresh() {

        if (swipeLayout!=null) {
            swipeLayout.setRefreshing(false);
            swipeLayout.destroyDrawingCache();
            swipeLayout.clearAnimation();
        }
    }

    public boolean OnCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.menu_cadetes, menu) ;
        return false;
    }

     @override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

Última edición por Merche300 Día 17/04/16 a las 10:52:59
Responder Con Cita


  #2  
Viejo 02/04/16, 22:49:48
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Si llamas a un getSupportFragmentManager que implementas tu mismo y que su única función es devolver null es obvio que te de error. Ya te he visto varias veces preguntando por aquí, y deberías tener bastante nivel para saber cual es el fallo.

Puedes hacerlo sin problemas, siempre y cuando tengas el Activity y la View donde quieras hacer el Replace disponibles en el ámbito donde se ejecuta el onItemClickListener, para poder llamar al VERDADERO getSupportFragmentManager de dicha Activity.
Responder Con Cita
Gracias de parte de:
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 00:01:51 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007