Ver la Versión Completa : [ CONSULTA ] Consulta sobre Fragments
kaiser75
26/09/16, 10:32:50
Hay manera de cargar o que se ejecute una clase que esta en un fragment en la Activity principal al arrancar la app?
kriogeN
26/09/16, 13:36:20
Si ese Fragment lo añades a la Activity principal puedes ejecutar lo que quieras en el momento en el que se produzca el onActivityCreated del Fragment.
Si te refieres a ejecutar algo que está en un Fragment en una Activity que no tiene nada que ver con ese Fragment... busca otra jerarquía.
kaiser75
28/09/16, 09:56:48
Si ese Fragment lo añades a la Activity principal puedes ejecutar lo que quieras en el momento en el que se produzca el onActivityCreated del Fragment.
Si te refieres a ejecutar algo que está en un Fragment en una Activity que no tiene nada que ver con ese Fragment... busca otra jerarquía.
El tema es que tengo un NavigationView con un menu, cada item del menu es un fragment que se carga al pulsar, al lado del item he añadido un numero que muestra los elementos que tiene la lista de ese fragment, tipo Gmail que te muestra el numero de correos que tienes en la carpeta, el problema es que al iniciar la aplicacion solo me muestra el numero del primer elemento de la lista, o sea el que se carga por defecto con la actividad, pero si luego pulso por ejemplo el 3er item se carga su fragment correspondiente y ahi si me muestra el contador y asi sucesivamente, lo que intento es que se me muestren todos los contadores al iniciar la app.
tipo esto
http://i.stack.imgur.com/70GKp.jpg
https://www.google.es/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwiv-N-MyrHPAhXLtBQKHQoWCggQjRwIBw&url=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F3 1050603%2Fhow-to-add-notification-value-for-item-on-navigationview-for-material-design-dra&psig=AFQjCNEPZ3lrC2SUawnFH4HpIgWwcoHJRA&ust=1475135494190367
mocelet
28/09/16, 10:25:24
¿No es la misma pregunta? http://www.htcmania.com/showthread.php?t=1225550
Te respondo lo mismo, esas cosas consúltalas directamente a la base de datos o donde guardes esa información. Los fragments o actividades donde muestres los datos no pintan nada.
kaiser75
28/09/16, 10:42:37
No es lo mismo, lo contadores ya los muestro, pero tienes que pulsar el elemento del menu para que se muestren, mientras el fragment no este cargado en la actividad principal el contador no se muestra, si pulso se muestra perfectamente.
por ejemplo, tengo este metodo en el Fragment2, lo llamo desde onCreateView o en el onResume, no pasa nada a no ser que desde el item2 (que llama a este fragment) pulse para visualizar todo el fragment en la actividad principal, asi si que me muestra los elementos.
public void contadorFragment2(){
int elem = lv.getAdapter().getCount();
NavigationView nv = (NavigationView) getActivity().findViewById(R.id.nav_view);
TextView t = (TextView) nv.getMenu().findItem(R.id.nav_item2).getActionVie w();
t.setText(elem > 0 ? String.valueOf(elem) : null);}
mocelet
28/09/16, 15:18:44
Claro, antes era cómo mostrar el número de elementos de una ListView de otra Activity y ahora es saber el número de elementos de una ListView de otro Fragment.
Así que sigo diciendo lo mismo, olvida que existe el Fragment. Realmente no te interesa el número de elementos de la ListView de un Fragment... lo que te interesa es cuántas cosas hay en la base de datos. Y eso ya te lo puede decir la base de datos haciendo una consulta directamente, no hace falta preguntarle a ningún Fragment o que un Fragment cree un adapter y una vista incluso si no se va a mostrar nada.
kriogeN
28/09/16, 17:41:18
Es lo que dice mocelet, hay que tener clara la arquitectura MVC, en este caso es incluso más extremo, es casi una "Arquitectura limpia del tío Bob" (Uncle Bob's clean architecture).
Activity y Fragments -> Contienen el ListView que se rellena a partir de un Adapter
Adapter -> Obtiene lo objetos de datos y los CREA y DESTRUYE según si son visibles o no en el ListView
En otras palabras, si quieres saber cuantos "Recorder" tienes, no hay que ir al Fragment, para que le pregunte al Adapter y este le pregunte a los datos. Tienes que preguntar directamente a los datos, que para eso son accesibles, más que nada porque puede que el Adapter o el Fragment no lo sea.
kaiser75
28/09/16, 18:25:27
Claro, antes era cómo mostrar el número de elementos de una ListView de otra Activity y ahora es saber el número de elementos de una ListView de otro Fragment. :risitas::risitas:
Así que sigo diciendo lo mismo, olvida que existe el Fragment. Realmente no te interesa el número de elementos de la ListView de un Fragment... lo que te interesa es cuántas cosas hay en la base de datos. Y eso ya te lo puede decir la base de datos haciendo una consulta directamente, no hace falta preguntarle a ningún Fragment o que un Fragment cree un adapter y una vista incluso si no se va a mostrar nada.
Vale, entiendo el concepto, seria coger los elementos de la tabla por ejemplo con el metodo getCount() no?, he creado una clase en la base de datos, la llamo desde onResume de la Activity principal y me muestra los contadores al iniciar... :ok: Gracias mocelet.
clase en la BD.
public int contadorItem2(){
return mDb.rawQuery("SELECT _id FROM "+TABLE_ITEM2+"", null).getCount();
}
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.