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

  • Icono de hamburguesa no se muestra en el fragmento de cajón de navegación
  • No se puede resolver el método getActivity ()
  • Comportamiento de fragmentos: FragmentTransaction :: replace () y operación backStack inversa
  • ¿Cómo abrir un nuevo fragmento del cajón de navegación?
  • DrawerLayout con AdMob Ad
  • Cómo seleccionar el primer elemento en un cajón de navegación y abrir un fragmento en el inicio de la aplicación
  • No abra el cajón de navegación de forma predeterminada
  • Volver a llamar a un fragmento de un DialogFragment
  • Hacer fragmento que se puede hacer clic al abrir el cajón de navegación
  • Uso de fragmentos del cajón de navegación para superponer la actividad
  • ¿Cómo eliminar fragmento el fragmento reemplazado en la transición de fragmentos?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.