単純な「いいえ」の回答で落ち着きます。何か違いがある場合、それは何ですか?
番号
getLayoutInflater()
を呼び出すアクティビティまたはウィンドウがgetSystemService()
を呼び出すコンテキストと同じである限り、違いはありません。
ProofgetLayoutInflater()
によって返されたLayoutInflaterを LayoutInflater.from() まで追跡すると、これは、ソースコードからのgetSystemService()
のショートカットです。
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;
}
少なくとも1つの状況があり、
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
対応するものの代わりに使用する必要があります
getLayoutInflater
その状況は、任意のオブジェクトクラスにあります。たとえば、objectAというクラスのインスタンスがあります。 objectAで、親ビューにビューを拡大します(リストビューのカスタマイズされた行を拡大するArrayAdapterで発生します)。この場合、context.getLayoutInflaterコンテキストに関連付けられたアクティビティまたはウィンドウがないため、機能しません。 getSystemService(Context.LAYOUT_INFLATER_SERVICE)のみが適切です。
これは、LayoutInflaterを定義する方法です。
_LayoutInflater inflater = (LayoutInflater)context.getSystemService (Context.LAYOUT_INFLATER_SERVICE);
_
そしてgetLayoutInflater()
は、LayoutInflaterを返すことにより、「ウィンドウがそのコンテキストから取得したLayoutInflaterインスタンスへの迅速なアクセス」を( documentation から)提供します。
同様に、getSystemService(Context.LAYOUT_INFLATER_SERVICE)
は、このコンテキストでレイアウトリソースを拡張するためのLayoutInflaterを取得するために使用されます。
したがって、実際には2つの間に[〜#〜] no [〜#〜]の違いがあります。
出典: Documentation
番号。
全く違いはありません。