Wenn ich findFragmentById() mit der ID meines Fragments aufrufen, gibt es null zurück. Lass mich dir den Code zeigen.findFragmentById gibt null zurück
Die activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<fragment android:name="com.madduck.test.app.fragment.MainFragment"
android:id="@+id/main_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<fragment android:name="com.madduck.test.app.fragment.LoginFragment"
android:id="@+id/login_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Die MainActivity.java
private static final int LOGIN = 0;
private static final int MAIN = 1;
private static final int FRAGMENT_COUNT = MAIN +1;
private Fragment[] fragments = new Fragment[FRAGMENT_COUNT]
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = getSupportFragmentManager();
fragments[LOGIN] = fm.findFragmentById(R.id.login_fragment);
fragments[MAIN] = fm.findFragmentById(R.id.main_fragment);
FragmentTransaction transaction = fm.beginTransaction();
for (Fragment f : fragments) {
if (f != null)
transaction.hide(f);
else
Log.e(TAG, "???");
}
transaction.commit();
}
Die Sache ist die, dass, wenn ich fm.findFragmentById(R.id.login_fragment);
nenne ich null bekommen, aber wenn ich fm.findFragmentById(R.id.main_fragment);
nennen bekomme ich das Fragment .
Schreiben Sie das komplette Crash-Protokoll und Ihr Fragment Code – Libin
Vielen Dank für Ihre schnelle Antwort, fand ich die Lösung (Ich benutzte support.v4 in einem Fragment und den normalen Typ in dem anderen) Ich kann die Lösung jetzt nicht posten, weil ich keine 10 Reputationen habe, sondern mich morgen selbst beantworten werde. Ich suche ein wenig vorher und habe nichts dazu gefunden. – Kar0t
Ich vermute, dass könnte das Problem sein. Wie auch immer du es gefunden hast. Gut – Libin