android自定义adapter
来源:互联网 发布:淘宝买家服务热线 编辑:程序博客网 时间:2024/06/06 20:53
使用SimpleAdapter创建list很简单
//生成适配器,数组===》ListItem SimpleAdapter mSchedule = new SimpleAdapter(getApplicationContext(), tempList, R.layout.record_listitem, new String[] {"ItemTitle", "ItemText"}, new int[] {R.id.ItemTitle,R.id.ItemText});
缺点是不能自定义Item的样式。
比如把
中签入签出使用不同的文字颜色,甚至更加复杂的逻辑操作,SimpleAdapter就很难实现了。
对于这个问题,我们可以使用自定义adapter,具体操作如下:
- 新建一个Adapter,继承自BaseAdapter
- 实现BaseAdapter中的四个方法
其中getView就是自定义样式的主要方法 - 调用Adapter
package com.halfopen.h.cislsign.adapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import com.halfopen.h.cislsign.R;import java.util.ArrayList;import java.util.HashMap;/** * Created by h on 2017/7/24. */public class RecordListAdapter extends BaseAdapter { //数据 private ArrayList<HashMap<String, String>> list; private Context context; public RecordListAdapter(Context context, ArrayList<HashMap<String, String>> list){ this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } //自定义界面 @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater _LayoutInflater = LayoutInflater.from(this.context); convertView = _LayoutInflater.inflate(R.layout.record_listitem, null); if(convertView!=null){ TextView nameView = (TextView) convertView.findViewById(R.id.ItemTitle); //用户名 TextView actionView = (TextView) convertView.findViewById(R.id.ItemAction); //签入/签出 TextView timeView = (TextView) convertView.findViewById(R.id.ItemText); //时间 String name = list.get(position).get("ItemTitle"); String action = list.get(position).get("ItemAction"); String time = list.get(position).get("ItemText"); nameView.setText(name); actionView.setText(action); timeView.setText(time); if (action.equals("签出")){ actionView.setTextColor(convertView.getResources().getColorStateList(R.color.colorAccent)); } } return convertView; }}
阅读全文
0 0
- android自定义Adapter
- Android 中自定义 Adapter
- Android之自定义Adapter
- android自定义adapter
- Android 中自定义 Adapter
- Android自定义adapter
- Android自定义Adapter适配器
- android 自定义adapter
- android 自定义Adapter
- Android GridView自定义Adapter
- android AutoCompleteTextView自定义Adapter
- Android 自定义Adapter
- android自定义Adapter
- Android自定义Adapter
- Android 自定义adapter(一)
- Android 自定义adapter(二)
- android自定义adapter
- Android自定义adapter
- iOS App上架流程(细版)
- 教你彻底学会动态规划——入门篇
- java的基本数据类型
- c++left right 和 setw() 函数的用法Alignment of Code
- http请求的常见响应码
- android自定义adapter
- OCX制作CAB(一) -- OCX工程的创建
- C语言enum枚举类型解析
- 树链剖分模板
- CentOS 7下安装MySQL与mariadb冲突的解决办法
- final 抽象类 抽象方法 接口
- 生成M3U8播放地址用于手机HLS Player(M3U8Player)观看电视频道直播方案
- Java_基础—拷贝文件
- EditText 限制输入为中文,个数为6个