一、android.view.LayoutInflater:布局膨胀器、布局加载器。
对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入,LayoutInflater作用是将layout的xml布局文件实例化为View类对象。
实现:
1、获取布局加载器:
LayoutInflater nflater = LayoutInflater.from(context);//当然还有另外两种方法。
2、从布局文件实例化一个视图:
View view = nflater.inflater(R.layout.Item,null);//在布局文件夹中有Item.xml这个布局文件
3、获取视图中的控件:
LinearLayout layout=(LinearLayout)view.findViewById(R.id.textLayout); //获取视图中的线性布局控件,
TextView textview = (TextView)vView.findViewById(R.id.title); //获取视图中的文本控件
Button btn = (Button)view.findViewById(R.id.del_btn); //获取视图中的按钮控件
获取控件的目的,是为了响应控件的敲击事件,例如布局控件的敲击事件,当在整个线性布局内点击时都会触发点击事件。
二、基础适配器BaseAdapter:android.widget.BaseAdapter
适配器的作用主要是用来给诸如(Spinner、ListView、GridView)来填充数据的。而(Spinner、ListView、GridView)都有自己的适配器,但是BaseAdapter(一招鲜)对他们来说却是通用的。
ListActivity适配器的实现:
1、定义自己的继承于基础适配器类,并实现几个重要的重载方法
class ChannelAdapter extends BaseAdapter
{
//需要必须实现的几个重要方法
public int getCount()//设置layout中填充的条目数量
{
}
//根据位置索引获取条目名称
public String getItem(int position)
{
}
//取得当前位置的根据位置获取条目id
public long getItemId(int position) {
return 0;
}
//最重要的一个方法,获取视图
/**
* @param position position就是位置从0开始
* @param convertView convertView是Spinner,ListView中每一项要显示的view
* @param parent parent就是父窗体了,也就是Spinner,ListView,GridView了
* @return 通常return 的view也就是convertView
* 绘制的内容均在此实现
*/
public View getView(int position, View convertView, ViewGroup parent)
{
//实现ListView中每一项要显示的view。
convertView = mInflator.inflate(R.layout.item, null);
//可以获取控件,并创建控件的点击响应函数
return convertView;
}
}
2、在ListActivity的onCreate函数中实例化该适配器实例,然后关联起来
//实例化该适配器
ChannelAdapter mAdapter=new ChannelAdapter(this);
//关联适配器
setListAdapter(mAdaper);