【问题标题】:Want to change color of a grid on second click想要在第二次单击时更改网格的颜色
【发布时间】:2013-05-08 11:36:24
【问题描述】:

我创建了一个自定义日历,我在其中设置了单击单个网格时的颜色。我的要求是在第二次单击时将颜色更改为其他颜色。我尝试通过在另一个 onclick 侦听器中放置一个 onclick 侦听器来实现这一点。它有效,但它非常有问题。有时第二种颜色停留在前一个网格中,或者有时它不起作用,有时当我单击以前单击的网格时它会变成第二种颜色。

我的要求是在第一次单击时将网格的颜色更改为 color1,在第二次单击同一网格单元格时更改为 color2。

【问题讨论】:

    标签: java android gridview calendar onclicklistener


    【解决方案1】:

    尝试使用onClick 的计数器。并根据计数器更改网格的颜色.. 最初设置为 0,如果单击一次将其设置为 1,则更改颜色,如果再次单击,则增加计数器并再次更改颜色。不要在 onclick 中使用 onclick。

    【讨论】:

    • 但如果我维护一个计数器,该计数器不会独立应用于每个单元格,对吗?一旦我将计数器增加到 1,我的代码会将单击任何其他单元格解释为第二次单击,并且它会在第一次单击任何其他单元格时将单元格颜色更改为 color2。那不是我想要的。我的请求。是: 1. 在第一次单击单元格时更改为 color1。 2. 在第二次单击同一单元格时更改为第二次颜色。 3. 如果在第 1 步之后第一次单击另一个单元格,则重置我在第 1 步中单击的单元格的颜色,并将我现在单击的单元格的颜色更改为颜色 1。
    • @user2362126:您将一次添加 onClick 项目而不是总列表。所以你必须保持对每个视图的点击。因此,如果您使用多个单元格 setTag() 和 getTag() 以便获得特定视图。设置点击查看。
    【解决方案2】:

    使用索引计数器并在 onClick 监听器中更新计数器并更改颜色。

    【讨论】:

    • 如果我只有一个单元格/项目要更改,您的建议可能会奏效。但我有 30 个细胞。每个人都必须自己改变。如果我将计数器更改为 1 以单击一个单元格,则代码会将第一次单击任何其他单元格解释为第二次单击,此时计数器为 1。那不是我想要的。我已经指定了我的请求。在 Mahaveer Muttha 的评论中。
    【解决方案3】:

    你可以去

    GestureDetector

    你可以在这里找到更多 - Detecting Common Gestures

    通过它,您可以检测常见的手势,如触摸、向下、轻弹、单击、双击、长按滚动

    【讨论】:

    • 我浏览了您建议的链接,我想知道双击是指快速完成连续两次单击还是仅单击两次。如果它只是两次点击,那么它可能会解决我的问题。但我真的很怀疑。
    • a consecutive 2 clicks done quickly or just two clicks 有什么不同?...你能解释一下你到底在寻找什么吗?...我可能误解了你的问题.. :|
    • 当然。 color0 中有 30 个单元格。当我单击单个单元格时,该单元格的颜色变为 color1。当我再次单击同一个单元格时,它应该更改为 color2。如果单击一次单元格后,如果我单击任何其他单元格,则前一个单元格应返回 color0,单击的单元格应更改为 color1。我该怎么做?
    • 这会容易得多。当用户单击 om 单元格时,将获取该单元格的颜色,并根据当前的颜色将颜色更改为下一个相应的颜色。喜欢if color0 then go to color1 and if color1 go to color2 and if color2 go to color0
    • 是的,这就是我想要的...我已经考虑过了...但是你能给我一个示例代码如何获取单元格的颜色吗?
    猜你喜欢
    • 2014-12-29
    • 1970-01-01
    • 2012-12-06
    • 2016-03-23
    • 2021-01-04
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多