Crash sur tablette avec utilisation de Fragment
Bonjour,
J'ai développé une appli android et elle marche très bien sur mon émulateur eclipse. Mais lorsque je l'ouvre sur une tablette Samsung, l'application se lance,
(je remarque que mes fragments ne s'affiche pas), puis l'application se crash.
Premièrement, j'aimerais connaître les éventuelles limitations en utilisant des fragments (de la library support v4).
Dans mon appli, j'essaye d'ajouter dynamiquement des fragments à leurs containers (des frameLayout).
J'ai essayé de télécharger l'émulateur Samsung, mais sans succès.
(Je ne le vois pas dans le SDK manager même après avoir ajouté dans
ajouté dans le user defined site: http://innovator.samsungmobile.com/a...repository.xml )
Ci-dessous un exemple où j'essaye depuis une classe android.support.v4.app.FragmentActivity d'ajouter des fragments:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_container_layout);
setUpFragments();
}
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
/**
* Adds fragments to their parent containers.
*/
private void setUpFragments() {
final FragmentManager fm = getSupportFragmentManager();
setTopContainerFragments(fm);
}
/**
* Adds fragments to the containers located at the top of the frame.
* @param fm a {@link FragmentManager} object
*/
private void setTopContainerFragments(final FragmentManager fm) {
CustomerFragment customerFragment =
(CustomerFragment)
fm.findFragmentById(R.id.customer_container);
FirmLogoFragment firmLogoFragment =
(FirmLogoFragment)
fm.findFragmentById(R.id.firm_logo_container);
if (customerFragment == null) {
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.customer_container, new CustomerFragment());
ft.commit();
}
if (firmLogoFragment == null) {
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.firm_logo_container, new FirmLogoFragment());
ft.commit();
}
} |