本文来自安卓航班网

java代码:

/**
* 童鞋们只需要将需要设置监听事件的组件写在下面这方法里就可以啦!
* 别的不需要修改!
* 备注3
*/
public void addListener(View convertView) {
((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();
}
});
}
}

        备注1:这个For循环中是对ListView中每一项中包含所有的组件进行判定每个组件的类型,从而去设置其数据!

        这里我只是对ImageView、TextView的类型进行的数据识别,为什么我这里只写了这两种,那是因为Button、CheckBox等这些带事件响应的组件是无法通过适配器映射到ListView上的;

       其实关于适配器映射的机制,这里简单说下:例如一个TextView组 件,那么在ListView的每一项(List)中put()添加的时候,put()方法中第一个参数key大家知道是用于与适配器进行对应映射数据用的 值,那么第二个参数其实就是put进组件的数据;其实当其数据反射在ListViw时,其实内部就是对组件进行实例化,并且对组件设置数据;

       备注2 :我这里最后还有一个else{…}这里是留给童鞋们去扩展的,因为可能还有一些其他能映射的组件,所以这里留下接口,供大家扩展;
       备注3:addListener(View convertView)这是我留出来的方法,童鞋们只需要将需要设置监听事件的组件写在这方法里就可以啦!

原文地址:http://www.apkway.com/forum.php?mod=viewthread&tid=2677&extra=page%3D1

posted on 2011-08-10 20:55  泉と緣  阅读(285)  评论(0编辑  收藏  举报