android - usar - Llamar a getLayoutInflater() en lugares que no están en actividad
toast make in android (4)
¿Qué necesita ser importado o cómo puedo llamar al inflador Layout en lugares que no sean 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();
}
Puedo llamar a getLayoutInflater
solo en actividad, ¿es eso una restricción? ¿Qué sucede si quiero crear un cuadro de diálogo personalizado y quiero inflar la vista para él, o qué sucede si quiero tener el mensaje Toast con una vista personalizada que se muestra desde un servicio, solo tengo el contexto del servicio que 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 ?
O ...
LayoutInflater inflater = LayoutInflater.from(context);
Puede usar estas actividades externas: todo lo que necesita es proporcionar un Context
:
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
Luego, para recuperar sus diferentes widgets, infle un diseño:
View view = inflater.inflate( R.layout.myNewInflatedLayout, null );
Button myButton = (Button) view.findViewById( R.id.myButton );
EDITAR a partir de julio de 2014
La answer de Davide sobre cómo obtener el LayoutInflater
es en realidad más correcta que la mía (que aún es válida).
Usando el objeto de contexto puede obtener LayoutInflater del siguiente código
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
o
View.inflate(context, layout, parent)