Ich möchte einer Aktivität ein Fragment hinzufügen, das ihr Layout programmgesteuert implementiert. Ich habe die Fragment-Dokumentation durchgesehen, aber es gibt nicht viele Beispiele, die beschreiben, was ich brauche. Hier ist die Art von Code, die ich zu schreiben versucht habe:
public class DebugExampleTwo extends Activity {
private ExampleTwoFragment mFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FrameLayout frame = new FrameLayout(this);
if (savedInstanceState == null) {
mFragment = new ExampleTwoFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(frame.getId(), mFragment).commit();
}
setContentView(frame);
}
}
...
public class ExampleTwoFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
Button button = new Button(getActivity());
button.setText("Hello There");
return button;
}
}
Dieser Code wird kompiliert, stürzt jedoch beim Start ab, wahrscheinlich weil mein Code FragmentTransaction.add()
falsch ist. Was ist der richtige Weg, um dies zu tun?
ft.add(android.R.id.content, newFragment)
. Es ist nur erforderlich, ein benutzerdefiniertes Layout zu erstellen und seine ID festzulegen, wenn der Container des Fragments nicht die Inhaltsansicht der Aktivität ist.