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.