【Android开发】自定义ListView,使用通用适配器,并实现ListView上的每一项和每一项上的按钮等控件同时监听

作者: 红色黎明 分类: Android,学习笔记 发布时间: 2012-06-17 21:55

ListView在Android开发中是比较常用的系统组件,但是有时候我们除了需要做ListView上每一行的点击监听事件之外,如果每一行上还有其他需要监听的控件例如Button、CheckBox等,就必须要进行特殊的处理。

本文自定义的ListView,实现了ListView的每一项和上面的Button按钮能同时监听点击事件(其他控件的做法与Button一样),并且使用通用适配器ListSimpleAdapter,相对于普通的ListActivity,更具扩展性,适配器上可以很容易添加更多各式的控件。

最终效果:

           

先写listsimpleadapter.xml,这个是ListView每一项的布局文件。如果想在每一项上要添加其他的控件,可以修改此文件。

自定义通用适配器的java代码。For循环中是对ListView中每一项中包含所有的组件进行判定每个组件的类型,从而去设置其数据。其中【instanceof】这个关键字是对Object 类型的判断。

这里要特别指出,由于textview的某种原因,我也不是很清楚,只是经过测试,如果其他类似于Button、CheckBox等控件设置在textview的后面,其对应的代码将不执行,也就是说程序运行时把button和CheckBox都映射成了textview,故执行了textview中的代码。这个问题现在我也不知道原因所在。但是如果将Button、CheckBox等控件设置放在textview之前,代码正常运行。

写主界面的TestActivity:

至此,一个ListView就做完了。与传统的ListView,代码具有很高的重用性和扩展性,并且能很容易实现一个ListView。

代码附件,在上一篇的基础上我将第一个标签改成了ListView。

TabHostDemo(增加了ListView)

2条评论
  • 摄影入门

    2012 年 7 月 22 日 上午 8:18

    来你博客踩踩,欢迎互访,可以申请友情链接吗?可以的话给我回个邮件吗?我的网址是http://www.sheyingrumen.net,谢谢

  • 优实惠

    2012 年 7 月 22 日 上午 9:00

    过来学习了。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注