Quelle est la différence entre setContentView et LayoutInflater?
Je suis entrain de créer une liste d'onglets avec plusieurs fragments.
J'ai remarqué que, dans l'activité principale, j'ai utilisé setContentView
pour obtenir la mise en page xml et l'utilisation findViewById
correspondant à l'élément d'INTERFACE de config.
setContentView(R.layout.fragment_tabs);
mTabHost = (TabHost)findViewById(android.R.id.tabhost);
mTabHost.setup();
mTabManager = new TabManager(this, mTabHost, android.R.id.tabcontent);
Cependant, dans les différents fragment de classe, je dois utiliser le inflater à la place.
View v = inflater.inflate(R.layout.webview, container, false);
WebView myBrowser=(WebView)v.findViewById(R.id.mybrowser);
Et les deux fonction sont utilisées pour obtenir la mise en page xml pour créer un objet, pourquoi est-il une différence? Est le premier à utiliser au cours de onCreate
, et la seconde au cours de onCreateView
? Dans quelle situation je doit choisir l'un d'eux?
Vous devez vous connecter pour publier un commentaire.
setContentView
est unActivity
méthode uniquement. ChaqueActivity
est fourni avec unFrameLayout
avec l'id"@+id/content"
(c'est à dire l'affichage du contenu). Quelle que soit vous spécifiez danssetContentView
sera la vue pour queActivity
. Notez que vous pouvez également passer une instance de la vue de cette méthode, par exemplesetContentView(new WebView(this));
la version de La méthode que vous utilisez pour gonfler la vue pour vous dans les coulisses.Fragments, d'autre part, ont un cycle de vie de la méthode appelée
onCreateView
qui renvoie une vue (si il en a un). La façon la plus courante de le faire est de gonfler une vue en XML et de le retourner dans cette méthode. Dans ce cas, vous devez gonfler tout de même. Les Fragments n'ont passetContentView
méthodeLayoutInflater.inflate
dans une Activité, comme une alternative àsetContentView
.