GetSupportFragmentManager no compila en DialogFragment

¿Cómo puedo mostrar esto:

public class TagsDialog extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = getActivity().getLayoutInflater(); builder.setView(inflater.inflate(R.layout.tags_dialog, null)); builder.setMessage("This is a message").setTitle("TAGS"); return builder.create(); } } 

Desde dentro de mi Fragment dentro de un ViewPager :

  public class MyFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ... ImageView btnTags = (ImageView)view.findViewById(R.id.btnTags); btnTags.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DialogFragment dlg = new TagsDialog(); //this line doesn't compile dlg.show(getSupportFragmentManager(), "tags"); } }); } } 

He intentado por edades para conseguir esto para trabajar, pero getSupportFragmentManager nunca se resuelve … alguna idea?

EDITAR:

Siento que todo esto es causado por el apoyo FragmentManager vs el android.app.FragmentManager, sin embargo no sé cómo resolver esto, ya que estoy usando el ViewPager de la biblioteca de soporte …

GetSupportFragmentManager / y todos los métodos relacionados de getFragManager como parent y child uno siempre devuelven al Manager de la lib de soporte, cuando el método show quiere el core one.

Las importaciones son:

 import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; FragmentManager fm = getActivity().getSupportFragmentManager(); // returns from support lib DialogFragment dlg = new TagsDialog(); dlg.show(fm, "tags"); // wants core... 

Si sólo uso núcleo, entonces getSupportFragmentManager() no existe en getActivity()

Debe revisar sus importaciones. No se puede usar una mezcla de Fragment & FragmentManager de la biblioteca de soporte y de apis de núcleo de android.

Si utiliza soporte, utilice todo desde soporte (del paquete android.support.v4.app ). Si no, utilice todo desde el paquete de api del núcleo ( android.app ).

Esto es lo que hago en mi Fragmento que está en ViewPager. El código para mostrar un DialogFragment es el mismo donde nunca lo haría aunque.

 FragmentManager fm = getActivity().getSupportFragmentManager(); ConfirmDeleteDialog dialog = new ConfirmDeleteDialog(); dialog.setTargetFragment(RecipeFragment.this, REQUEST_CONFIRM_RC); Bundle b = new Bundle(); b.putString(ConfirmDeleteDialog.EXTRA_CONFIRM_DIALOG_TYPE, ConfirmDeleteDialog.CONFIRM_DIALOG_TYPE.COMMIT.name()); // enum determines what to display dialog.setArguments(b); dialog.show(fm, "confirm delete"); 

EDITAR.

Creo que puede estar perdiendo el * getActivity (). * GetSupportFragmentManager ()

  • Agregar un fragmento con el método add () no oculta fragmentos anteriores
  • ¿Cómo eliminar fragmento el fragmento reemplazado en la transición de fragmentos?
  • Cajón de navegación: crea una nueva instancia de fragmento cada vez o simplemente "actualiza" los datos.
  • No abra el cajón de navegación de forma predeterminada
  • Actualización de un fragmento en respuesta a la interacción de Android Navigation Drawer
  • Uso de fragmentos del cajón de navegación para superponer la actividad
  • Comportamiento de fragmentos: FragmentTransaction :: replace () y operación backStack inversa
  • La tecla de retroceso para hacer estallar el fragmento muestra los fragmentos superpuestos
  • Cómo deshabilitar el cajón en fragmento y volver al fragmento correcto
  • ¿Qué está pasando con mi actividad de cajón de navegación de Android?
  • Hacer fragmento que se puede hacer clic al abrir el cajón de navegación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.