GetSupportFragmentManager kompiliert nicht auf DialogFragment

Wie kann ich das zeigen:

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

Von innen mein Fragment in einem ViewPager :

  • Einfache Zuordnung mit falschem Wert
  • Warum Custom Dimension mit "User" -Grenzebene nicht in meinem Bericht angezeigt wird?
  • Schneiden von Inhalt in TextView
  • Wie man EditText Box-Höhe erweitert
  • Android: Hat jemand wissen, wie man Video erfassen?
  • Suchvorschläge werden als leer / kein Text angezeigt
  •   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"); } }); } } 

    Ich habe schon seit Ewigkeiten versucht, das zu arbeiten, aber getSupportFragmentManager ist nie gelöst … irgendwelche Ideen?

    BEARBEITEN:

    Ich glaube, das ist alles verursacht durch die Unterstützung FragmentManager vs die android.app.FragmentManager, aber ich weiß nicht, wie dies zu lösen, wie ich bin mit dem ViewPager aus der Support-Bibliothek …

    GetSupportFragmentManager / und alle verwandten getFragManager Methoden wie Eltern und Kind gibt man immer den Manager aus dem Support lib zurück, wohin die Show-Methode den Kern eins will.

    Importe sind:

     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... 

    Wenn ich nur Kern getSupportFragmentManager() , dann ist getSupportFragmentManager() nicht auf getActivity()

  • Android M + Retrofit + JSON: Kann nicht Feldbauer zugänglich machen
  • Erstellen eines System-Overlay-Fensters (immer oben)
  • IOS-ähnliches Storyboard-Tool für Android-Projekt?
  • Button BackgroundTint funktioniert nicht mit AppCompat v23
  • Warum liebt Android die statischen Klassen
  • Einige Fragen zu GcmTaskService
  • 2 Solutions collect form web for “GetSupportFragmentManager kompiliert nicht auf DialogFragment”

    Sie sollten Ihre Importe überprüfen. Sie können keine Mischung aus Fragment & FragmentManager aus der Supportbibliothek und aus dem Android Kern apis verwenden.

    Wenn Sie Unterstützung verwenden, verwenden Sie alles von der Unterstützung (vom Paket android.support.v4.app ). Wenn nicht, verwenden Sie alles aus dem Kern-API-Paket ( android.app ).

    Hier ist was ich in meinem Fragment mache, das in einem ViewPager ist. Der Code, um ein DialogFragment zu zeigen, ist dasselbe, wo immer du es tun würdest.

     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"); 

    BEARBEITEN.

    Ich glaube, Sie können die * getActivity () fehlen . * GetSupportFragmentManager ()

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.