项目要用到一个listview,要求是可以显示图片,后面还有有复选框。
先新建一个MyAdapter类,继承自BaseAdapter。在MyAdapter中实现对数据的绑定,我这儿由于是测试的,所以把数据写死了。
1 | package com.zwq.umeng; |
上面类中要注意getView()方法中对数据的处理。
接下要新建一个list.xml文件,这个就是布局image、textview、checkbox。
1 |
|
android:layout_weight="1"
这一句可以使中间的textview权重增大,从而后面的checkbok可以居右显示。
1 | android:focusable="false" |
这三句很重要,如果不加就会出现错误。
由于checkbox的点击事件优先级比listview的高,所以要在checkbox中添加android:focusable=”false”,使得checkbox初始的时候没有获取焦点。
接下来在main.xml中添加Listview组件
1 | <ListView |
接下来就是在activity中调用:
1 | list=(ListView)findViewById(R.id.lv); |
最新看一下效果图:
要获取哪些项目被选择了,可以这样测试:
1 | OnClickListener bPop = new OnClickListener() { |
上面使用getChildAt(i)可能会报空指针异常,具体原因见:Android中GridView、ListView的getChildAt方法返回null
总结:
数据可以在Activity中获取,在初始化Adapter的时候当做参数传递过去,这样就可以是list编程动态的。