/**
*
*/
package com.himi;
import java.util.List;
import java.util.Map;
import android.app.AlertDialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.CompoundButton.OnCheckedChangeListener;
/**
* @author Himi
*
*/
public class MySimpleAdapter extends BaseAdapter {
//声明一个LayoutInflater对象(其作用是用来实例化布局)
private LayoutInflater mInflater;
private List<Map<String, Object>> list;//声明List容器对象
private int layoutID; //声明布局ID
private String flag[];//声明ListView项中所有组件映射索引
private int ItemIDs[];//声明ListView项中所有组件ID数组
public MySimpleAdapter(Context context, List<Map<String, Object>> list,
int layoutID, String flag[], int ItemIDs[]) {
//利用构造来实例化成员变量对象
this.mInflater = LayoutInflater.from(context);
this.list = list;
this.layoutID = layoutID;
this.flag = flag;
this.ItemIDs = ItemIDs;
}
@Override
public int getCount() {
return list.size();//返回ListView项的长度
}
@Override
public Object getItem(int arg0) {
return 0;
}
@Override
public long getItemId(int arg0) {
return 0;
}
//实例化布局与组件以及设置组件数据
//getView(int position, View convertView, ViewGroup parent)
//第一个参数:绘制的行数
//第二个参数:绘制的视图这里指的是ListView中每一项的布局
//第三个参数:view的合集,这里不需要
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//将布局通过mInflater对象实例化为一个view
convertView = mInflater.inflate(layoutID, null);
for (int i = 0; i < flag.length; i++) {//遍历每一项的所有组件
//每个组件都做匹配判断,得到组件的正确类型
if (convertView.findViewById(ItemIDs[i]) instanceof ImageView) {
//findViewById()函数作用是实例化布局中的组件
//当组件为ImageView类型,则为其实例化一个ImageView对象
ImageView iv = (ImageView) convertView.findViewById(ItemIDs[i]);
//为其组件设置数据
iv.setBackgroundResource((Integer) list.get(position).get(
flag[i]));
} else if (convertView.findViewById(ItemIDs[i]) instanceof TextView) {
//当组件为TextView类型,则为其实例化一个TextView对象
TextView tv = (TextView) convertView.findViewById(ItemIDs[i]);
//为其组件设置数据
tv.setText((String) list.get(position).get(flag[i]));
}
}
//为按钮设置监听
((Button)convertView.findViewById(R.id.btn)).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
//这里弹出一个对话框,后文有详细讲述
new AlertDialog.Builder(MainActivity.ma)
.setTitle("自定义SimpleAdapter")
.setMessage("按钮成功触发监听事件!")
.show();
}
});
//为复选框设置监听
((CheckBox)convertView.findViewById(R.id.cb)).
setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//这里弹出一个对话框,后文有详细讲述
new AlertDialog.Builder(MainActivity.ma)
.setTitle("自定义SimpleAdapter")
.setMessage("CheckBox成功触发状态改变监听事件!")
.show();
}
});
return convertView;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android基础软件源码(列表之SimpleAdapter适配).zip
共26个文件
class:10个
java:3个
png:3个
需积分: 5 0 下载量 110 浏览量
2024-09-12
06:04:44
上传
评论
收藏 56KB ZIP 举报
温馨提示
Android基础软件源码(列表之SimpleAdapter适配).zipAndroid基础软件源码(列表之SimpleAdapter适配).zip
资源推荐
资源详情
资源评论
收起资源包目录
Android基础软件源码(列表之SimpleAdapter适配).zip (26个子文件)
Android基础软件源码(列表之SimpleAdapter适配)
ListViewProject_2
.classpath 280B
assets
src
com
himi
MySimpleAdapter.java 3KB
MainActivity.java 2KB
res
drawable-mdpi
icon.png 3KB
drawable-ldpi
icon.png 2KB
values
strings.xml 180B
layout
main.xml 1KB
drawable-hdpi
icon.png 4KB
bin
resources.ap_ 11KB
ListViewProject_2.apk 16KB
classes.dex 6KB
com
himi
R$string.class 397B
R$layout.class 364B
R$id.class 463B
MySimpleAdapter.class 3KB
MySimpleAdapter$1.class 1KB
R$attr.class 310B
R$drawable.class 370B
MainActivity.class 2KB
R.class 461B
MySimpleAdapter$2.class 1KB
proguard.cfg 1KB
default.properties 362B
.project 853B
AndroidManifest.xml 632B
gen
com
himi
R.java 922B
共 26 条
- 1
资源评论
GJZGRB
- 粉丝: 2938
- 资源: 7737
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功