J'ai lu la documentation sur Fragments dans le Android Developer Guide et j'ai vu que parfois ils spécifient la classe à instancier avec l'attribut de balise Fragment Android: nom et parfois ils utilisent l'attribut class : :
<fragment
Android:name="com.example.news.ArticleReaderFragment"
Android:id="@+id/viewer"
Android:layout_weight="2"
Android:layout_width="0dp"
Android:layout_height="match_parent" />
<fragment
class="com.example.Android.apis.app.FragmentLayout$TitlesFragment"
Android:id="@+id/titles"
Android:layout_weight="1"
Android:layout_width="0px"
Android:layout_height="match_parent" />
Est-ce que Android: nom et classe: interchangeables? Si j'utilise la fonction de saisie semi-automatique dans Eclipse, ils affichent tous les deux la même astuce de documentation (c'est-à-dire que l'attribut fournit le nom de classe à instancier). Vous devez peut-être utiliser le second lorsque la classe à instancier a un nom différent du nom de fichier Java, comme TitlesFragment qui se trouve dans le fichier FragmentLayout.Java ? Ou puis-je utiliser la syntaxe package.fileDOTjava $ Classe également avec l'attribut Android: name ?
J'aimerais avoir une documentation pour les balises et les attributs XML comme pour Android Java Classes (j'ai posé des questions à ce sujet dans une autre question ).
Comme le dit la source Activity.onCreateView:
String fname = attrs.getAttributeValue(null, "class");
TypedArray a = context.obtainStyledAttributes(attrs, com.Android.internal.R.styleable.Fragment);
if (fname == null) {
fname = a.getString(com.Android.internal.R.styleable.Fragment_name);
}
Cela signifie apparemment que le programme regarde d'abord l'attribut "classe". Et en cas d'échec, l'attribut "nom" apparaît. Donc, pour autant que ce soit vrai, utiliser "classe" est plus efficace.
Android: nom et classe: interchangeables?
Vraisemblablement, oui. Je n'ai utilisé que class
, et cela semble être ce que la plupart des exemples de Google utilisent, mais je vois où ils utilisent Android:name
dans certains exemples. Malheureusement, il n'y a pas de documentation officielle et complète pour <fragment>
.
Désolé, tous les experts sont ici, je peux me tromper, mais selon mes connaissances Android: nom l'attribut de fragment est utilisé pour trouver un fragment, lorsque nous utilisons getFragmentByTag () méthode de fragmentManager classe. également Android: class l'attribut est utilisé pour trouver la classe de fragment que nous incluons généralement pour fragment statique.
J'espère que cela vous aidera .. merci