3 自定义FootballClub_Adapter类
接下来在项目中自定义一个名为FootballClub_Adapter类,将该类的父类设置为BaseAdapter,如图6所示。
图6 自定义FootballClub_Adapter类
3.1 BaseAdapter类
BaseAdapter类是Adapter类的一个抽象子类。在定义BaseAdapter类的子类时,必须要重写该类的getCount()、getItem()、getItemId()和getView()这四个成员方法。
3.1.1 getCount()方法
getCount()方法的作用是获取适配器中表示的数据的项数。该方法的格式为
public abstract int getCount()
3.1.2 getItem()方法
getItem()方法的作用是获取适配器中指定位置的数据。该方法的格式为
public abstract Object getItem(int position)
其中,参数position为指定的位置。
3.1.3 getItemId()方法
getItemId()方法的作用是获取是配置中指定位置行的ID。该方法的格式为
public abstract long getItemId(int postion)
其中,参数position为指定的位置。
3.1.4 getView()方法
getView()方法的作用是获取适配器中指定位置的用于显示数据的视图。当每次显示ListView中各个项时,都会调用与其关联的适配器的getView()方法。该方法的格式为
public abstract View getView(int position, View converView, ViewGroup parent)
其中,参数position是指定位置;converView刷新ListView项之前的“老视图”;parent是该适配器项视图的上一级视图。在自定义的FootballClub_Adapter类中,将重点重写getView()方法。
3.2 FootballClub_Adapter类
3.2.1 定义成员变量
为FootballClub_Adapter类定义两个成员变量,如图7所示。
图7 FootballClub_Adapter类的成员变量
其中,mData是List<FootballClub>列表的对象,用来保存FootballClub类的对象;flater是布局类LayoutInflater类的对象,用来导入适配器项相关的布局文件。
相关链接1:List类与ArrayList类,List是一个集合类,用于保存多个数据;ArrayList是List的一个子类,是一个动态数组。
相关链接2:LayoutInflater类,该类可以将布局文件实例化为相应的View对象,即可以用于布局文件的导入。
3.2.2 定义构造方法
FootballClub_Adapter类的构造方法如图8所示代码定义。
图8 FootballClub_Adapter类的构造方法
其中,构造方法的参数context表示该适配器所处的上下文;list是FootballClub对象的集合。FootballClub_Adapter类在构造方法中,对该类的两个成员变量mData和flater进行初始化赋值,其中addAll()方法的作用是将list中所有的数据都添加到mData中,LayoutInflater.from()方法的作用是从给定的上下文中获取LayoutInflater对象。
3.2.3 重写getCount()、getItem()、getItemId()方法
重写getCount()方法的代码如图9所示。
图9 重写getCount()方法
重写getItem()方法的代码如图10所示。
图10重写getItem()方法
重写getItemId()方法的代码如图11所示。
图11 getItemId()方法