2012-05-27 12 views
9

Pasé por algunos tutoriales, y en el documento de Android, dice no acceder directamente a LayoutInflater al crear una instancia. Ejemplo del documento de Google Docs:¿Cuál es la diferencia entre llamar a LayoutInflater directamente y no?

LayoutInflater inflater = (LayoutInflater)context.getSystemService 
    (Context.LAYOUT_INFLATER_SERVICE); 

El tutorial Fui a través de éste es:

LayoutInflater inflater = LayoutInflater.from(parent.getContext()); 

Así que lo que realmente no entiendo es lo que la diferencia es obvia, además del código diferente. Cualquier explicación muy apreciada. Supongo que el Doc Android debería ser el que seguimos, pero no estoy seguro si hace la diferencia.

Respuesta

17

Si abre la fuente de Android se puede ver que el método LayoutInflator.from se ve así:

/** 
* Obtains the LayoutInflater from the given context. 
*/ 
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; 
} 

Eso significa que las dos líneas de código en tu pregunta haz lo mismo. No estoy seguro de qué dice exactamente el tutorial que lee, pero no veo ninguna diferencia en la funcionalidad. Usar el método from es bueno, ya que requiere un poco menos de tipeo, eso es todo.

+0

¡Jaja! ¡Wow gracias! Eso realmente ayudó. Hubiera tenido otra pregunta, pero incluso respondiste esa. ¡Muy apreciado! – Andy

2
LayoutInflater inflater = (LayoutInflater)context.getSystemService 
    (Context.LAYOUT_INFLATER_SERVICE); 

Usted está recibiendo LayoutInflater Service Provider de System Manager

LayoutInflater inflater = LayoutInflater.from(parent.getContext()); 

está usando el static método de LayoutInflater Class

Yo diría que la diferencia es sólo en código y la forma de escribir esta pila también llamando pero resultado es lo mismo; obtendrá LayoutInflater.

Más sobre this

Saludos

Cuestiones relacionadas