安卓adapter适配器
来源:互联网 发布:linux运维之道 pdf 编辑:程序博客网 时间:2024/05/15 08:50
ArrayAdaapter,SimpleAdapter,BaseAdapter的使用
1. ArrayAdapter
ArrayAdapter<String> adapter = new rrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,data);listView.setAdapter(adapter);
- 第一个参数:this这是上下文
第二个参数:这里采用的是系统自带的样式,当让我们也可以自定义
simple_list_item_1 : 单独一行的文本框
simple_list_item_2 : 两个文本框组成
simple_list_item_checked : 每项都是由一个已选中的列表项
simple_list_item_multiple_choice : 都带有一个复选框
simple_list_item_single_choice : 都带有一个单选钮第三个参数:数据资源,数据资源可以是集合,数组或者是数组资源(R文件)
2.SimpleAdapter
SimpleAdapter相对ArrayAdapter就比较高级啦,它可以放置文本和片,功能也比较强大
SimpleAdapter myAdapter = new SimpleAdapter( getApplicationContext(), listitem, R.layout.list_item, new String[]{"img", "text1", "tex1t"}, new int[]{R.id.imgtou, R.id.name, R.id.says} );ListView listView = (ListView) findViewById(R.id.list_test);listView.setAdapter(myAdapter);
- 第一个参数:上下文
- 第二个参数:数据资源
- 第三个参数:布局资源
- 第四个参数:创建一个数组
- 第五个参数:布局资源中组件的id
3. BaseAdapter
该BaseAdapter是大多数适配器的基类,我们可以自定义,使用起来比较灵活,也是大多数程序猿的大爱
java代码:
class MyBaseAdapter extends BaseAdapter { //获取当前items项的大小,也可以看成是数据源的大小 @Override public int getCount() { return list.size(); } //根据item的下标获取到View对象 @Override public Object getItem(int position) { return list.get(position); } //获取到items的id @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertview, ViewGroup viewGroup) { /*ViewHolder通常出现在适配器里,为的是listview滚动的时候快速设置值,而不必每次都重新创建很多对象,从而提升性能。*/ ViewHolder holder = null; if (convertview == null) { convertview = View.inflate(TraficLightActivity.this, R.layout.traffic_item, null); holder = new ViewHolder(); holder.road_id = (TextView) convertview.findViewById(R.id.road_id); holder.redTime = (TextView) convertview.findViewById(R.id.red_time); holder.greenTime = (TextView) convertview.findViewById(R.id.green_time); holder.yellowTime = (TextView) convertview.findViewById(R.id.yelow_time); convertview.setTag(holder); } else { holder = (ViewHolder) convertview.getTag(); } mRoadLightInfo = list.get(position); //setText要设置的内容:如果是取出来的数据是int类型的,那么,不会直接设置内容 //会去R类里去找对应的数据,如果没有,就会报资源找不到的异常 holder.road_id.setText(mRoadLightInfo.getRoadId() + "路口"); holder.redTime.setText(mRoadLightInfo.getRedTime()); holder.greenTime.setText(mRoadLightInfo.getGreenTime()); holder.yellowTime.setText(mRoadLightInfo.getYellowTime()); return convertview; } } class ViewHolder { TextView road_id; TextView redTime; TextView reenTime; TextView yellowTime; }
该类采用内部类MyBaseAdapter,该类继承了BaseAdapter,同时重写了四个方法。在是个方法中我们主要是重写getView方法。此外,我们为了不重新创建许多对象,我们采用了ViewHolder类,在该类中我们定义了几个属性。getView方法中我们首先获取view视图,并且获取里面的各个组件,给各个组件赋值。
1 0
- 安卓adapter适配器
- 安卓的适配器Adapter
- 【安卓笔记】数据适配器(adapter)中的观察者模式
- 安卓学习笔记之实现通用的适配器(adapter)与ViewHolder
- 安卓1103_数据库 database Mysql sqlite ListView Adapter适配器
- ListView配合安卓适配器Adapter和迭代器Iterator的用法整理
- 安卓Adapter用法
- 安卓listview adapter
- 适配器Adapter
- Adapter适配器
- Adapter(适配器)
- 适配器[Adapter]
- 适配器(Adapter)
- 适配器--Adapter
- 适配器-Adapter
- 适配器Adapter
- 适配器 adapter
- 适配器(Adapter)
- 项目经验之谈—— x86、ARM架构栈帧汇编分析
- 【Spring学习16】自动检测Bean
- 关于Notepad++的详细使用教程
- VS2013 ultimate密钥
- Weka连接数据库导入数据运行时出现错误:Unknown
- 安卓adapter适配器
- 主席树——BZOJ3673/BZOJ3674 可持久化并查集(加强版)
- nginx重写示例
- InputStreamReader
- bzoj2007 [Noi2010]海拔
- 设计模式干货系列:(四)单例模式【学习难度:★☆☆☆☆,使用频率:★★★★☆】
- 如何让你的app在后台被干掉后优雅的重新启动
- React-Native-Navigator导航条-push不同动画
- ACM必练50题