2011-07-19 16 views
7

He intentado usar DialogFragment en dispositivos 3.0, que no es compatible con Fragment o DialogFragment por nivel de SDK.¿Cómo puedo mostrar un DialogFragment usando el paquete de compatibilidad?

Por lo tanto, decidí usar la biblioteca de compatibilidad de Android, que es compatible con Fragment.
Luego creé una clase DialogFragment que extiende android.support.v4.app.DialogFragment.

Pero ..... Cuando traté de mostrar mi DialogFragment usando DialogFragment.show(), me notificó que muestran (FragmentManager, String) acepta como primer argumento android.app.FragmentManager, no android.support .v4.app.FragmentManager.

Creo que android.app.FragmentManager no se puede usar en dispositivos con Android 3.0 porque no está incluido en SDK.

¿Hay alguna manera de mostrar DialogFragment con la biblioteca de compatibilidad? ¿Tengo que usar otra forma de mostrar My DialogFragment con la biblioteca de compatibilidad?

Cualquier ayuda será muy apreciada. :)

Respuesta

15

El paquete de compatibilidad es para aquellos que desarrollan versiones de Android anteriores a 3.0.

Tanto el FragmentManager y los DialogFragment clases existen en el nivel API 11 (3,0)

En cualquier fragmento o actividad que debería ser capaz de hacer lo siguiente para mostrar un diálogo pequeña (vacío) en el centro de la pantalla :

DialogFragment df = new DialogFragment(); 
df.show(getSupportFragmentManager(), "MyDF"); 
+5

Reemplazar getFragmentManager con getSupportFragmentManager(). – Tom

10

FragmentManagerDialogFragment y existe en el lib compat para la versión SDK 4 y hacia arriba, asegúrese de importar esos queridos.

Usuario getSupportFragmentManager() para obtener su FragmentManager para compatib lib.

Mostrar el diálogo como se describe en DialogFragment documentación que pasa la versión de compatibilización de `FragmentManager '.

Tenga en cuenta que también se puede tratar el DialogFragment como Fragment y 'show' usando add(...) o replace(...) como parte de una transacción, es decir, que no se limitan a usar sólo show(...)

+1

¿Cuál sería la diferencia entre add() y show()? – David

Cuestiones relacionadas