Je pensais que ma conversion en fragments assez bien fait jusqu'à ce que j'ai fait pivoter l'écran. Je reçois les types d'erreurs suivants:Android Re-Instantiation erreur de fragment
RuntimeException: Impossible de démarrer l'activité ComponentInfo {com.ghcssoftware.gedstar/com.ghcssoftware.gedstar.GedStar}: android.support.v4.app.Fragment $ InstantiationException: Impossible de instancier le fragment com.ghcssoftware.gedstar.PersonTab $ PersonTabFrag: assurez-vous que le nom de la classe existe, est public, et a un constructeur vide qui est public
La classe en question existe, est public, et j'ai ajouté un constructeur vide avec pas de changement dans les résultats. En regardant un exemple de code, je remarque quelques différences dans la façon dont mon code est écrit, bien que je ne vois pas de constructeurs vides non plus:
1) Y a-t-il une raison pour que ma classe de fragments soit déclarée "statique" de nombreux échantillons sont?
2) Dois-je implémenter l'utilisation de "newInstance" dans ma classe de fragments? Pourquoi cela est-il fait au lieu de simplement avoir un constructeur? Par exemple de l'un des échantillons de V14:
public static class CountingFragment extends Fragment {
int mNum;
/**
* Create a new instance of CountingFragment, providing "num"
* as an argument.
*/
static CountingFragment newInstance(int num) {
CountingFragment f = new CountingFragment();
// Supply num input as an argument.
Bundle args = new Bundle();
args.putInt("num", num);
f.setArguments(args);
return f;
}
Je suis encore un peu familier avec certains concepts de Java, donc peuvent être manque ici quelque chose de base.
Doug Gordon GHCS Software
Je ne suis pas sûr de ce qui se passe avec votre problème de rotation, mais cette page décrit le but de la déclaration de classe statique: http://www.javaworld.com/javaworld/javaqa/1999-08/01-qa-static2.html – goto10