我只是想知道
之间有什么区别(RelativeLayout) LayoutInflater.from(mContext).inflate(R.layout.todo_item, null);
和
(RelativeLayout) ((Activity)mContext).getLayoutInflater().inflate(R.layout.todo_item, null);
以下是我使用它的方式:
public class SomeAdapter extends BaseAdapter {
private final List<ItemEntry> mItems = new ArrayList<ItemEntry>();
private final Context mContext;
public SomeAdapter(Context context) {
mContext = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO - Get the current ItemEntry
final ItemEntry toDoItem = mItems.get(position);
RelativeLayout itemLayout = null;
// I'm getting ClassCastException on this.
// itemLayout = (RelativeLayout) ((Activity) mContext).getLayoutInflater().inflate(R.layout.item_entry, null);
// code run as expected
itemLayout = (RelativeLayout) LayoutInflater.from(mContext).inflate(R.layout.item_entry, null);
// more codes
}
}
答案 0 :(得分:1)
getLayoutInflater()
,在可用的地方,始终会为您提供LayoutInflater
,其中会考虑主题和其他样式。
LayoutInflater.from()
只会为您提供一个LayoutInflater
,可能会考虑或不考虑主题和其他样式,尤其取决于您作为参数传递的Context
内容
在测试测试和某些特殊情况之外(例如,Service
需要扩充布局),使用getLayoutInflater()
来扩充布局。