Je veux ajouter un fragment à une activité qui implémente sa mise en page par programme. J'ai parcouru la documentation Fragment mais il n'y a pas beaucoup d'exemples décrivant ce dont j'ai besoin. Voici le type de code que j'ai essayé d'écrire:
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;
}
}
Ce code se compile mais se bloque au démarrage, probablement parce que my FragmentTransaction.add()
est incorrect. Quelle est la bonne façon de procéder?
ft.add(android.R.id.content, newFragment)
. Il est uniquement nécessaire de créer une mise en page personnalisée et de définir son identifiant si le conteneur du fragment n'est pas la vue de contenu de l'activité.