前面已经说过,GridView内部的按钮与GridView的OnItemClick会发生冲突。冲突解决之后,要给按键添加监听,每个Item内部只有一个按钮,点击Item与按键的监听可以为一个,多个按钮,可以再Adapter的getView中为其添加监听。
(1)setTag(index)
View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。可以用在多个Button添加一个监听器,每个Button都设置不同的setTag。这个监听器就通过getTag来分辨是哪个Button 被按下。
(2)点击按钮,按钮上的字交替变化
在GridView中,点击按钮,判断当前行的按钮是True还是False,必须先通过getTag()获取当前行,然后通过list.get(dd).isA()获取当前button的状态(A是标记Button的状态的,在GridInfo中)
holder.present_speak.setTag(index);
holder.present_speak.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int dd=(Integer) v.getTag();
boolean temp = list.get(dd).isA();
if(!temp) ((TextView) v).setText("禁言");
else ((TextView) v).setText("发言");
list.get(dd).setA(!temp);
}
});