做和做有什么区别

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

inflater = LayoutInflater.from(activity);

最佳答案



不同之处在于在第二个示例中(通过静态方法),您不需要将 Object 转换为 LayoutInflater 因为它直接返回 LayoutInflater 实例。

第一种情况通常返回您必须显式转换为 LayoutInflater 的 Object 。但是这两种方法的结果都是 LayoutInflater 的新实例

取决于你会选择哪种方法。我通常使用 LayoutInflater.from(); 方法,从来没有问题。我不需要从 Object 转换,它会成为一个技巧。

正如@CommonsWare 提到的,你也可以打电话

getLayoutInflater()

如果您在 Activity 类中(它是 Activity 的方法)。但是当你不在 Activity 中时,你需要有 Context 变量然后你可以调用(例如从 ListAdapter ):
((Activity) context).getLayoutInflater();

但我认为当你不在 Activity 中时,调用 LayoutInflater.from(); 而不是上面的方法会更容易和有效。

10-08 18:18