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

Respuesta
 
Herramientas
  #1  
Viejo 02/04/16, 22:00:45
Array

[xs_avatar]
Merche300 Merche300 no está en línea
Betatester oficial
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Tu operador: Pepephone
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
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
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   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 18:32:09 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /