【发布时间】:2013-09-23 14:24:24
【问题描述】:
做和做有什么区别
LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
和inflater = LayoutInflater.from(activity);
【问题讨论】:
做和做有什么区别
LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
和inflater = LayoutInflater.from(activity);
【问题讨论】:
充气机有什么区别
不同之处在于,在第二个示例中(通过静态方法),您不需要将 Object 强制转换为 LayoutInflater,因为它直接返回 LayoutInflater 实例。
第一种情况通常返回您必须显式转换为LayoutInflater 的对象。但是这两种方法的结果都是LayoutInflater的新实例
由您决定采用哪种方法。我通常使用LayoutInflater.from(); 方法,从来没有问题。我不需要从 Object 进行投射,它会成功的。
正如@CommonsWare 提到的,你也可以调用
getLayoutInflater()
如果你在Activity 类中(它是Activity 的方法)。但是当您不在 Activity 中时,您需要有 Context 变量,然后您可以调用(例如从 ListAdapter):
((Activity) context).getLayoutInflater();
但我认为,当您不在 Activity 中时,调用 LayoutInflater.from(); 而不是上面的方法更容易和有效。
【讨论】:
Activity 上拨打getLayoutInflater()。