Une simple réponse "non" me calmera. S'il y a une différence, qu'est-ce que c'est?
Non
Tant que l'activité ou la fenêtre qui appelle getLayoutInflater()
a le même contexte que celui qui appellerait getSystemService()
, il n'y a pas de différence.
Preuve Vous pouvez tracer le LayoutInflater retourné par getLayoutInflater()
à LayoutInflater.from () et vous pouvez voir ce n'est qu'un raccourci pour getSystemService()
à partir du code source:
public static LayoutInflater from(Context context) {
LayoutInflater LayoutInflater =
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (LayoutInflater == null) {
throw new AssertionError("LayoutInflater not found.");
}
return LayoutInflater;
}
Il y a au moins une situation qui ne
getSystemService (Context.LAYOUT_INFLATER_SERVICE);
doit être utilisé à la place de la contrepartie
getLayoutInflater
Cette situation se trouve dans une classe d'objets arbitraire. Par exemple, j'ai une instance de l'appel de classe objectA. Dans objectA, je veux gonfler une vue sur la vue parent (se produire dans ArrayAdapter qui gonfle la ligne personnalisée dans sa vue de liste.) Dans ce cas, context.getLayoutInflater ne fonctionne pas car aucune activité ou fenêtre n'est associée au contexte. Seul getSystemService (Context.LAYOUT_INFLATER_SERVICE) est alors approprié.
Voici comment définir un LayoutInflater.
LayoutInflater inflater = (LayoutInflater)context.getSystemService (Context.LAYOUT_INFLATER_SERVICE);
Et getLayoutInflater()
donne juste "un accès rapide à l'instance LayoutInflater que la fenêtre a récupérée de son contexte" (à partir de la documentation ) en renvoyant LayoutInflater.
De même, getSystemService(Context.LAYOUT_INFLATER_SERVICE)
est utilisé pour récupérer un LayoutInflater pour gonfler les ressources de mise en page dans ce contexte.
Donc, en fait, il y a [~ # ~] pas [~ # ~] différence entre les deux.
Source: Documentation
NON.
Il n'y a aucune différence.