需要导入什么或如何在活动以外的地方调用 Layout inflater?
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(); }
我getLayoutInflater只能在活动中打电话,这是限制吗?如果我想创建自定义对话框并且我想为它膨胀视图,或者如果我想从服务中显示带有自定义视图的 Toast 消息怎么办,我只有来自服务的上下文我没有任何活动但我想显示自定义消息。
getLayoutInflater
我需要在代码中不在活动类中的地方使用充气机。
我怎样才能做到这一点 ?
您可以使用此外部活动 - 您只需提供Context:
Context
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
然后要检索不同的小部件,您可以扩展布局:
View view = inflater.inflate( R.layout.myNewInflatedLayout, null ); Button myButton = (Button) view.findViewById( R.id.myButton );
编辑截至 2014 年 7 月
Davide关于如何获得的答案LayoutInflater实际上比我的更正确(尽管它仍然有效)。
LayoutInflater
或者 …
LayoutInflater inflater = LayoutInflater.from(context);