ListView_自定义BaseAdapter适配器_自定义多彩条目_1
来源:互联网 发布:淘宝买家改评价的链接 编辑:程序博客网 时间:2024/06/06 12:33
在Android众多的控件中,ListView可谓是用的最多的控件之一,也是扩展性最强的控件。
控件在布局中的定义相对简单,在此就不再赘述了。
下面我们来开始我们的ListView之旅。。。
首先,我们定义数据源。。。
private ListView listView;
// 定义数据源
private List<Map<String, Object>> list;
private String[] title = new String[] { "锁定手机", "手机杀毒", "解锁手机", "手机上网",
"我的文档", "手机导航", "手机设置", "消息提示", "Emails" };
private int[] images = new int[] { R.drawable.img01, R.drawable.img02,
R.drawable.img03, R.drawable.img04, R.drawable.img05,
R.drawable.img06, R.drawable.img03a, R.drawable.img07,
R.drawable.email };
// 定义适配器
private MyAdapter myAdapter;
其中,List<Map<String,Object>>是用来为适配器提供数据支持的,String[] title和int[] images分别为适配器提供字符串和图片的资源支持
// 初始化数据
private void initData() {
list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < title.length; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", title[i]);
map.put("images", images[i]);
map.put("descripe", "专门处理" + title[i]
+ "相关功能,采用国内顶尖技术和开发团队制作,给用户完美体验!");
list.add(map);
}
}
在上面的代码总,我们将之前所准备的数据放到list中,待会作为参数传到自定义的Adapter中去。
现在,万事具备,只欠东风,我们开始自定义适配器
public class MyAdapter extends BaseAdapter {
//定义一个List接受传过来的数据
private List<Map<String, Object>> list;
//定义一个 上下文
Context context;
//定义一个LayoutInflater来获取系统资源文件
LayoutInflater inflater;
//构造方法 获取资源 获取上下文
public MyAdapter(List<Map<String, Object>> list,Context context) {
this.list = list;
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int arg0) {
return list.get(arg0);
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
//定义一个ViewHolder 作为封装控件的容器 (反正我是这么理解的)
ViewHolder holder = null;
if(arg1 == null){
holder = new ViewHolder();
//获取资源布局文件
arg1 = inflater.inflate(R.layout.listview_item, null);
//获取资源文件中的控件
holder.iv_1 = (ImageView) arg1.findViewById(R.id.iv_1);
holder.tv_title = (TextView) arg1.findViewById(R.id.tv_title);
holder.iv_2 = (ImageView) arg1.findViewById(R.id.iv_2);
holder.tv_des = (TextView) arg1.findViewById(R.id.tv_des);
//这个不知道就没法玩了 但就是这样玩的
arg1.setTag(holder);
}else{
holder = (ViewHolder) arg1.getTag();
}
//为获取到的控件设置资源,让其有东西可以用来显示
holder.iv_1.setBackgroundResource(Integer.parseInt(list.get(arg0).get("images").toString()));
holder.iv_2.setBackgroundResource(Integer.parseInt(list.get(arg0).get("images").toString()));
holder.tv_title.setText(list.get(arg0).get("title").toString());
holder.tv_des.setText(list.get(arg0).get("descripe").toString());
return arg1;
}
//自定义一个ViewHolder类
class ViewHolder{
ImageView iv_1;
TextView tv_title;
ImageView iv_2;
TextView tv_des;
}
}
到此,所有工作就已经准备完成了,下面来看看效果
0 0
- ListView_自定义BaseAdapter适配器_自定义多彩条目_1
- Android自定义适配器BaseAdapter
- android 自定义适配器BaseAdapter
- 自定义ListView ,适配器(BaseAdapter)
- 自定义BaseAdapter适配器
- 自定义ListView适配器继承BaseAdapter
- baseAdapter自定义适配器千万注意
- 自定义适配器的使用方法(baseAdapter)
- Android学习ListView自定义布局,适配器BaseAdapter
- BaseAdapter使用——自定义适配器
- BaseAdapter 自定义适配器设置网格布局
- Android自定义适配器,BaseAdapter的使用方法
- Android中自定义适配器BaseAdapter基本用法
- 关于Android自定义适配器BaseAdapter浅谈
- BaseAdapter自定义适配器及ListView的优化
- 学会使用listview的自定义baseadapter适配器
- android-继承BaseAdapter自定义适配器基础
- BaseAdapter 自定义适配器的使用以及优化
- html 表格小demo 1
- Java 面试高频提问知识点之:Set、List 和 Map 的区别
- Robotium 中真实测试方法编写举例
- LTE学习:PHICH(一)
- android spinner 调用onItemSelectedListener的思考
- ListView_自定义BaseAdapter适配器_自定义多彩条目_1
- Robotium 常用控件应用举例
- iOS NSUserDefaults的使用
- xxx can not access a member of class xxxx with modifiers ""
- Linux / Unix Command: awk命令
- 深入Java单例模式
- Squid
- Robotium API 二次封装
- 【LeetCode】之Valid Parentheses