BaseAdapter是一种使用频率较高的适配器,因为它可以通过自定义最大程度扩展满足各种情景下的使用。我们不仅需要知道适配器的使用,进一步我们也需要了解适配器的原理。
问题是最好的学习方式,下面主要讨论这么几个问题:
Q1.ListView中每个Item的创建
Q2.ListView中Item的复用
Q3.ListView中屏幕显示的Item与复用生成Item之间的关系
首先写一个简单的demo.
1 package com.aellenlei.baseadapterdemo; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.widget.ListView; 6 7 import java.util.ArrayList; 8 import java.util.List; 9 10 public class MainActivity extends AppCompatActivity { 11 12 @Override 13 protected void onCreate(Bundle savedInstanceState) { 14 super.onCreate(savedInstanceState); 15 setContentView(R.layout.activity_main); 16 17 //1.findViewById 18 ListView listView = (ListView) findViewById(R.id.listView); 19 20 //2.初始化数据源 21 List<ItemBean> list = new ArrayList<>(); 22 for (int i = 0; i < 5; i++) { 23 ItemBean itemBean = new ItemBean(); 24 itemBean.postion = i; 25 itemBean.title = "title " + i; 26 itemBean.content = "content " + i; 27 list.add(itemBean); 28 } 29 30 //3.初始化适配器 31 ItemBeanAdapter itemBeanAdapter = new ItemBeanAdapter(list, getApplicationContext()); 32 33 //4.ListView绑定适配器 34 listView.setAdapter(itemBeanAdapter); 35 } 36 }