Ich habe andere Fragmente, die einwandfrei geladen und ausgeführt werden, aber sie erweitern Fragment und nicht PreferenceFragmentCompat. Ich habe den Code direkt aus der Android-Dokumentation entnommen. Außerdem verwende ich in der gesamten App androidx.
Code: Select all
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
switch (item.getItemId()) {
case R.id.navigation_dashboard:
selected = MapFragment.newInstance();
break;
case R.id.navigation_notifications:
selected = new PreferencesFragment();
break;
default:
selected = OffersFragment.newInstance(1);
break;
}
transaction.replace(R.id.frame_layout, selected).commit();
return true;
}
};
....
static class PreferencesFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
super.onCreate(savedInstanceState);
setPreferencesFromResource(R.xml.preferences, rootKey);
}
// TODO: Rename method, update argument and hook method into UI event
}
Code: Select all
08-15 11:24:47.857 28789-28789/com.xxx E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.xxx, PID: 28789
java.lang.StackOverflowError: stack size 8MB
at androidx.preference.PreferenceFragmentCompat.onCreate(PreferenceFragment Compat.java:141)
at com.xxx.MainActivity$PreferencesFragment.onCreatePreferences(MainActivity.java:138)
D/Error: ERR: exClass=java.lang.StackOverflowError
ERR: exMsg=stack size 8MB
ERR: file=PreferenceFragmentCompat.java
ERR: class=androidx.preference.PreferenceFragmentCompat
ERR: method=onCreate line=141
ERR: stack=java.lang.StackOverflowError: stack size 8MB
Mobile version