Android 开发中 LayoutInflater 详解
在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于findViewById(),不同点是LayoutInflater是用来找layout下xml布局文件,并且实例化!而findViewById()是找具体xml下的具体widget控件(如:Button,TextView等)。有很多地方可以使用:
对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入. 如BaseAdapter的getView中,自定义Dialog中取得view中的组件widget等等。
下面这是个简单的BaseAdapter:
首先声明LayoutInflater
[java]
private LayoutInflater inflater=null;
在getView()方法里使用
[java]
inflater=LayoutInflater.from(context);
View v=inflater.inflate(R.layout.listview_item, null);
完整代码:
[java]
public class PullXmlAdapter extends BaseAdapter {
private List<Book> list=null;
private Context context=null;
private LayoutInflater inflater=null;
public PullXmlAdapter(Context context,List<Book> list) {
// TODO Auto-generated constructor stub
this.context=context;
this.list=list;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
inflater=LayoutInflater.from(context);
View v=inflater.inflate(R.layout.listview_item, null);
TextView tv=(TextView)v.findViewById(R.id.lisview_item_tv);
tv.setText(list.get(arg0).getName());
return v;
}
}
补充:移动开发 , Android ,