当前位置:操作系统 > 安卓/Android >>

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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,