android 使用ListView实现列表,列表中有checkBox,TextView,需实现点击这两个控件能触发不同的动作解决方法
android 使用ListView实现列表,列表中有checkBox,TextView,需实现点击这两个控件能触发不同的动作
想做一个列表,列表中 的每一Item都有一个checkBox,跟文本TextView。点击文本时能触发一个动作(例如弹出一个对话框),点击checkBox时只是表示是否选中。本来是实现了,一个文本的列表,点击文本时也能触发动作。但是之后再加上checkBox,就不再响应动作。现在的想法是:能否将一个Item作为一个类(checkBox与textView都放在一个类中,各自的响应函数也放在里边),再将这个类的一个对象数组,放到一个适配器中,再将其显示出来?(就算这样可行,也不知道在代码上如何实现)请大牛给予指点。并希望能附上代码。
------解决方案--------------------
重写Adapter。
其中最重要的是getView()这个方法,你在里面自己顶一个一个布局XX,这个布局就是你的每一个item。如你所说需要一个CheckBox 和一个TextView。
思路代码如下:
getView(...){
//此处注意,如何应用你的XX布局,用这个LayoutInflate。
CheckBox mCheckBox = XX.findViewById(XXX):
TextView mTextView = xx.findViewById(XX);
mCheckBox .setOnclickListener(XXX):
.....
}
想做一个列表,列表中 的每一Item都有一个checkBox,跟文本TextView。点击文本时能触发一个动作(例如弹出一个对话框),点击checkBox时只是表示是否选中。本来是实现了,一个文本的列表,点击文本时也能触发动作。但是之后再加上checkBox,就不再响应动作。现在的想法是:能否将一个Item作为一个类(checkBox与textView都放在一个类中,各自的响应函数也放在里边),再将这个类的一个对象数组,放到一个适配器中,再将其显示出来?(就算这样可行,也不知道在代码上如何实现)请大牛给予指点。并希望能附上代码。
------解决方案--------------------
重写Adapter。
其中最重要的是getView()这个方法,你在里面自己顶一个一个布局XX,这个布局就是你的每一个item。如你所说需要一个CheckBox 和一个TextView。
思路代码如下:
getView(...){
//此处注意,如何应用你的XX布局,用这个LayoutInflate。
CheckBox mCheckBox = XX.findViewById(XXX):
TextView mTextView = xx.findViewById(XX);
mCheckBox .setOnclickListener(XXX):
.....
}