切换表单小部件-GridView Android

切换表单小部件-GridView Android,android,gridview,Android,Gridview,我用Imageview,TextView添加了一个Gridview。它工作得非常好。现在我想添加on/off按钮。我选择开关。它也工作得很好。我需要设置单击/检查更改操作。但我面临一个问题 首先,我尝试了onCheckChangedListener,它正在工作。但问题是当我尝试滚动GridViewcheckchanged Listener调用时 所以 我尝试单击另一个选项onclickListener。它也在发挥作用。这里的问题是当我刷开关点击动作没有触发 我尝试另一种选择。这就是onTouch

我用
Imageview
TextView
添加了一个
Gridview
。它工作得非常好。现在我想添加
on/off
按钮。我选择开关。它也工作得很好。我需要设置单击/检查更改操作。但我面临一个问题

首先,我尝试了
onCheckChanged
Listener,它正在工作。但问题是当我尝试滚动
GridView
checkchanged Listener调用时

所以

我尝试单击另一个选项
onclick
Listener。它也在发挥作用。这里的问题是当我刷开关点击动作没有触发

我尝试另一种选择。这就是
onTouch
Listener。它不起作用。原因是我多次触摸动作调用


如何
在GridView中处理开关
?请任何人帮助我。

例如,您可以使用表单
复选框

CheckBox chk = (CheckBox) findViewById(etc.....);
chk.setOnClickLictenetr(new oclickLictener(){
    @Override
    public void onclick(View view){
       CheckBox chekbox = (CheckBox) view;
for example this is your structure===> item.done = chekbox.isChecked();
    }
});

如果您滚动,您将被选中。

我找到了禁用开关的解决方案。 有点困惑。但解决办法是

第1步:

实现setOnTouchListener

例:

第二步:


在步骤1之后。我们可以自由地实现onclickListener。

我在问题中提到的方法可以奏效。但这里的问题是,当我滑动开关时,没有动作(onclick)triggeredOk。你可以看到这个链接,也许可以帮助你:我的问题和那个链接之间的关系是什么。我不明白你的意思
switchButton.setOnTouchListener(new View.OnTouchListener() {
  @Override
  public boolean onTouch(View v, MotionEvent event) {
    return event.getActionMasked() == MotionEvent.ACTION_MOVE;
  }
});