Fragment.onCreateView hat einen Null-Container
Das Folgende läuft auf einem Android 1.6, daher verwende ich das Kompatibilitätspaket für Fragmente. Im FolgendenTestFragment
ist eine statische verschachtelte Klasse:
<code>public class FragmentTestActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public static class TestFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView result = new TextView(getActivity()); result.setText("Hello TestFragment"); return result; } } </code>
}
Die main.xml-Datei:
<code><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <fragment class="com.test.FragmentTestActivity$TestFragment" android:id="@+id/test" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </FrameLayout> </code>
Das Seltsame ist, dass der Container-Parameter inonCreateView
istnull
.
Nun, wenn ich das Fragment programmatisch wie folgt hinzufüge (ändere einfach dasonCreate
Methode der Aktivität) Der Container ist nicht mehr null. Warum?
<code>public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fragment frag = new TestFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, frag).commit(); } </code>