Activity.getLayoutInflator()与Context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)之间的区别

时间:2014-08-22 14:35:59

标签: android android-activity layout-inflater android-context

我有一个定义EditText的布局,没有特殊的样式,主题或颜色,基本上它使用默认的。默认值为OK。

我使用activity.getLayoutInflator()从我的适配器中扩充了这个布局,它很完美,我想要的方式。但后来我尝试更改它以使用context.getSystemService(Context.LAYOUT_INFLATER_SERVICE),所以我删除了对活动的直接引用。它完全混淆了我的EditText的提示文本颜色的颜色。

最初我认为它们是相同的,只是不同的访问方式,但现在我看到它们产生不同的结果,虽然布局成功膨胀。为什么会这样?

1 个答案:

答案 0 :(得分:3)

LayoutInflater getLayoutInflater()返回的Activity考虑了您应用的主题;来自其他LayoutInflaterContext的{​​{1}}不会。

这就是为什么在Dave Smith's excellent blog post on Context的表格中,您尝试使用活动来扩充布局。