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 ()

  • ¿Cómo eliminar fragmento el fragmento reemplazado en la transición de fragmentos?
  • Android Volver al primer fragmento en navigationdrawer
  • Manejar el botón de retroceso en un solo fragmento
  • FragmentManager.beginTransaction () no se puede aplicar a (int, android.app.fragment)
  • ¿Cómo abrir un nuevo fragmento del cajón de navegación?
  • Cajón de navegación, problemas de concepto
  • Icono de hamburguesa no se muestra en el fragmento de cajón de navegación
  • No se puede resolver el método getActivity ()
  • ¿Qué está pasando con mi actividad de cajón de navegación de Android?
  • Cómo deshabilitar el cajón en fragmento y volver al fragmento correcto
  • Comportamiento de fragmentos: FragmentTransaction :: replace () y operación backStack inversa
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.