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é.