Al trabajar con fragmentos, he estado usando una clase compuesta de métodos estáticos que definen acciones en fragmentos. Para cualquier proyecto, podría tener una clase llamada FragmentActions
, que contiene métodos similares a los siguientes:
public static void showDeviceFragment(FragmentManager man){
String tag = AllDevicesFragment.getFragmentTag();
AllDevicesFragment fragment = (AllDevicesFragment)man.findFragmentByTag(tag);
if(fragment == null){
fragment = new AllDevicesFragment();
}
FragmentTransaction t = man.beginTransaction();
t.add(R.id.main_frame, fragment, tag);
t.commit();
}
Normalmente tendré un método por pantalla de aplicación. Hago algo como esto cuando trabajo con pequeñas bases de datos locales (generalmente SQLite), así que lo apliqué a fragmentos, que parecen tener un flujo de trabajo similar; Aunque no estoy casado con eso.
¿Cómo ha organizado sus aplicaciones para interactuar con la API de Fragmentos, y qué (si alguno) patrones de diseño cree que aplican hacen esto?
design-patterns
android
Anthony Naddeo
fuente
fuente
Respuestas:
El patrón aceptado es tener un método de fábrica dentro de su clase de fragmento personalizado (típicamente llamado newInstance () pero oye la elección del distribuidor). Entonces su clase de fragmentos debería verse así:
Luego, cuando crea un fragmento y lo agrega al backstack, en lugar de decir:
Fragmento de MyFragment = nuevo MyFragment ();
Puede usar el método de fábrica en lugar de la palabra clave 'nuevo'.
fuente