首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:设置多个按钮选择onClick

Android:设置多个按钮选择onClick
EN

Stack Overflow用户
提问于 2011-12-14 17:40:04
回答 1查看 2.3K关注 0票数 0

我有一套按钮:

代码语言:javascript
复制
[Button1]
[Button2]
[Button3]
[Button4]
[Button5]
[Button6]

它们都共享相同的onClick方法:

代码语言:javascript
复制
b.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        Button b = (Button) v;
        Button comp;
        int i = b.getId();
        selected[i] = !selected[i];
        b.setSelected(selected[i]);
        for (int j = 0; j < 6; j++) {
            if (i != j) {
                selected[j] = false;
                comp = lifestyleButtonArray.get(j);

                if(comp.isSelected())
                    comp.setSelected(selected[j]);
                    Log.w(TAG,"[Button] selection for button #"+j+"="+selected[j]);

            }
        }
    }
});

onClick方法的第一部分按预期工作。单击按钮时,切换按钮的“选择”值,以更改按钮的颜色(定义在可绘制的xml文件中),然后取消选择所有其他按钮,以便一次最多只选中一个按钮。

选择部分工作,但按钮没有重新绘制与适当的颜色,所以它似乎两个按钮被选中!

我尝试过无效和requestLayout,但这并没有帮助。有什么建议吗?

编辑:在对此作了更多的思考之后,这里要问的真正问题是:

如何更新不是来自onClick方法的视图?

在我的示例中,当我选择button1时,我希望能够从按钮2-6中删除选择,但是由于按钮2-6不是被调用的视图,它们显示正确的选定值(它们是未选中的),但不要将它们的UI视图更新为‘非选定’颜色!

EN

回答 1

Stack Overflow用户

发布于 2011-12-14 22:01:18

在设置按钮的选定状态后,您可能会调用每个按钮上的“失效()”函数,以迫使它们在下一个周期中进行更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8509092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档