package com.dream.myapplication;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
/**
* Created by dream on 2016/1/19.
*/
public class MyAdapter extends BaseAdapter {
private LayoutInflater mInflater;
//数据源与数据适配器关联起来
private List<ItemBean> mlist;
public MyAdapter(Context context,List<ItemBean>list){
mlist = list;
//content->要使用当前Adapter的界面对象;mInflater->布局装载器对象
/*
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。
不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;
而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。
具体作用:
1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;
2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。
LayoutInflater 是一个抽象类,在文档中如下声明:
public abstract class LayoutInflater extends Object
获得 LayoutInflater 实例的三种方式
1. LayoutInflater inflater = getLayoutInflater();//调用Activity的getLayoutInflater()
2. LayoutInflater inflater = LayoutInflater.from(context);
3. LayoutInflater inflater = (LayoutInflater)context.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
*/
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
//返回ListView需要显示的数据量
return mlist.size();
}
@Override
public Object getItem(int position) {
//指定索引所对应的数据项
return mlist.get(position);
}
@Override
public long getItemId(int position) {
//返回指定索引所对应的数据项
return position;
}
@Override
//返回每一项的显示内容
public View getView(int position, View convertView, ViewGroup parent) {
//R.layout.item->需要装载到Item中的布局文件;Null通常都谢null 获取xml->Item
View view = mInflater.inflate(R.layout.item,null);
//获取控件
ImageView imageView = (ImageView) view.findViewById(R.id.tv_image);
TextView title = (TextView) view.findViewById(R.id.tv_title);
TextView content = (TextView) view.findViewById(R.id.tv_content);
//从mlist数据源中将数据取出来,赋给三个控件
ItemBean bean = mlist.get(position);
imageView.setImageResource(bean.ItemImageResId);
title.setText(bean.ItemTitle);
content.setText(bean.ItemContent);
return view;
}
}