Adapter的使用步骤:
1.建立数据源
2.建立adapter
3.建立adapter-source连接
4.绑定adapter到界面组件
baseAdapter的使用:
//baseAdapter基础适配器
//baseAdapter是google的工程师给LIstAdapeter的默认实现
public class MyAdatper extends BaseAdapter{
//返回当前LIstview有多少个条目
public int getCount() {
return persons.size();
}
//返回当前position位置对应的条目的object对象
public Object getItem(int position) {
return persons.get(position);
}
//返回当前position位置某个条目的id
public long getItemId(int position) {
return position;
}
/**返回每一个条目显示的具体内容
* 计算当前界面会有多少个条目出现
* 1.得到每一个textview的高度
* 2.得到listview的高度
* 3.listview高度/textview的高度=得到了一个屏幕显示的textview的个数
* listview的每一个条目的显示都需要调用一次getview的方法
*/
public View getView(int position, View convertView, ViewGroup parent) {
// TextView tv = new TextView(MainActivity.this);
// //tv.setText("我是第"+position+"个文本");
// Person person = persons.get(position);
// tv.setText(person.getName()+" "+person.getNumber());
// return tv;
View view = inflater.inflate(R.layout.item, null);
Person person = persons.get(position);
TextView tv_name = (TextView)view.findViewById(R.id.tv_name);
TextView tv_number =(TextView) view.findViewById(R.id.tv_number);
tv_name.setText("名字为: "+person.getName());
tv_number.setText("年龄为: "+person.getNumber());
return view;
}
}
步骤的实现:
setContentView(R.layout.activity_main);
MyDbOpenHelper helper = new MyDbOpenHelper(this);
helper.getReadableDatabase();
//第一步得到组件的id的引用
mListView = (ListView) this.findViewById(R.id.lv_all_person);
PersonDao dao = new PersonDao(this);
persons =dao.getAllPersons();
//第二步设置组件要显示的内容
//ListView显示的东西比较复杂,需要数据的适配器
//mListView.setAdapter(new MyAdatper());
在这里最后就绑定了adapter到界面组件中(findViewById(R.id.lv_all_person)其实就是组件)
inflater的一些运用:
//把一个布局文件转化成view 对象
private LayoutInflater inflater;//打气筒,充气泵
//inflater 是系统的一个服务 初始化服务 , 可以使用该服务的工具实现转化功能
inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
//实现把一个布局文件转化成view 对象
View view = inflater.inflate(R.layout.item, null);