- Forum-Beiträge: 2.492
04.02.2015, 15:05:25 via Website
04.02.2015 15:05:25 via Website
Hallo,
ich hoffe ich habe für erfahrene Fragment - Nutzer ein ziemlich einfaches Problem.
Und zwar habe ich mir von AndroidStudio eine NavigationDrawer Acitivty erstellen lassen, bei der standardmäßig ja schon Fragments vorhanden sind. Jetzt wollte ich in der onNavigationDrawerItemSelected aber meine eigenen Fragments nutzen.
Das stand vorher in der oben genannten Methode:
@Override
public void onNavigationDrawerItemSelected(int position) {
// update the main content by replacing fragments
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.container, PlaceholderFragment.newInstance(position + 1)).commit();
}
Und das ist das PlaceholderFragment, aber in der gleichen Klasse wie die Methode oben
public static class PlaceholderFragment extends Fragment {
private static final String ARG_SECTION_NUMBER = "section_number";
public static PlaceholderFragment newInstance(int sectionNumber) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((MainActivity) activity).onSectionAttached(getArguments().getInt(ARG_SECTION_NUMBER));
}
}
Jetzt wollte ich meine Fragments aber auslagern in eigene Klassen. Deswegen habe ich den Code oben einfach in eine andere Klasse geschrieben, wenn ich dann aber in die onNavigationDrawerItemSelected schaue kommt folgender Fehler:
Error: (50, 100) error: incompatible types: PlaceholderFragment cannot be converted to Fragment
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
Und wenn ich mit der Maus über die Zeile gehe kommt auch, dass replace(int, fragment) nicht zu replace(int, pladeholderfragment) applied werden kann.
Hat da jemand eine Idee?
— geändert am 04.02.2015, 15:06:21
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.