多个视图共享相同的OnClickListener - 一次听一个?

时间:2014-07-24 18:17:40

标签: android onclicklistener

我正在进行瓷砖记忆游戏。

用户可以按下9x9电路板上的任何一个磁贴。

但是,我想限制用户一次只按一个。

我尝试使用TableLayout进行研究,设置beforeAscendants = true,然后尝试管理用户点击的位置,但这证明了乏味并且保存所有这些坐标似乎效率低的可能性现有的更简单的解决方案。

现在,我在每个瓷砖上调用.setOnClickListener并将它们设置为相同的onClickListener,但是没有办法限制一次可以按下多少个瓷砖。我已经尝试过A)在匿名onClickListener代码中围绕代码设置synchronized()部分,B)如果一个tile已经在onClickListener代码中,则布尔值设置为true但是它被简单地忽略了C)把头撞在墙上,没有帮助

谢谢!

1 个答案:

答案 0 :(得分:0)

这是我能够提出的最简单,最简单的方法。你也应该优化逻辑,这里很长。

onClick(View v) {
    switch (v.getId()) {
        case R.id.tile1:
        // Tile 1 is clicked
        // Disable other tiles (try setClickable(false))
            break;
        ...
        default:
            break;
    }
}