Llamar a getLayoutInflater () en lugares que no están en actividad

¿Qué se necesita importar o cómo puedo llamar al inflador de Layout en lugares distintos de la actividad?

public static void method(Context context){ //this doesn't work the getLayoutInflater method could not be found LayoutInflater inflater = getLayoutInflater(); // this also doesn't work LayoutInflater inflater = context.getLayoutInflater(); } 

Soy capaz de llamar a getLayoutInflater sólo en la actividad, es que una restricción? ¿Qué pasa si quiero crear un cuadro de diálogo personalizado y quiero inflar la vista para él, o qué si quiero tener mensaje Toast con la vista personalizada que se muestra desde un servicio, sólo tengo el contexto del servicio no tengo ninguna actividad Pero quiero mostrar un mensaje personalizado.

Necesito el inflador en lugares en el código que no está en la clase de actividad.

Cómo puedo hacer esto ?

Usted puede utilizar este actividades fuera – todo lo que necesita es proporcionar un Context :

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

A continuación, para recuperar sus diferentes widgets, inflar un diseño:

 View view = inflater.inflate( R.layout.myNewInflatedLayout, null ); Button myButton = (Button) view.findViewById( R.id.myButton ); 

EDIT a partir de julio de 2014

La respuesta de Davide en cómo conseguir el LayoutInflater es realmente más correcta que la mía (que sigue siendo válida sin embargo).

O …

 LayoutInflater inflater = LayoutInflater.from(context); 

Utilizando objeto de contexto puede obtener LayoutInflater de código siguiente

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

o

View.inflate(context, layout, parent)

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.