首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使按钮在Android SDK中保持按下状态

使按钮在Android SDK中保持按下状态
EN

Stack Overflow用户
提问于 2013-03-05 02:49:58
回答 2查看 6K关注 0票数 2

我有5个简单的按钮,我希望他们的行为像单选按钮,但没有勾选框(或任何他们叫他们)。它们在行中对齐,我希望一次只选择其中的一个,并且当一个按钮被选中时,它必须保持其选定的样式。我的布局代码如下所示:

代码语言:javascript
运行
复制
        <Button
            android:id="@+id/button1"
            android:layout_width="150dp"
            android:layout_height="fill_parent"
            android:layout_alignParentTop="true"
            android:layout_margin="0dp"
            android:text="@string/mybutton1" />

        <Button
            android:id="@+id/button2"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@+id/button1"
            android:text="@string/mybutton2" />

        // and so on

我的代码:

代码语言:javascript
运行
复制
    mybtn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mybtn1.setPressed(true);
        }
    });

所以,我不知道我是否可以在布局或代码中做到这一点。当我点击按钮时,有没有办法让按钮保持选中状态(和选中样式)?另外,是否可以将事件分配给所有这些按钮?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-05 02:54:57

只需在onClickListener中设置它们的选中状态:

代码语言:javascript
运行
复制
myButton.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v)
    {
        //handle click
        v.setSelected(true);
    }
});

单击状态就是选中状态,您可以打开和关闭该状态以获得效果。

票数 6
EN

Stack Overflow用户

发布于 2013-03-05 03:09:26

如果您希望按钮的行为是将它们用作复选框,则可以使用ToggleButton

在您的示例中,实际上是一个切换按钮列表,当您单击其中一个按钮时,您必须使用以下命令取消选择所有其他按钮:

代码语言:javascript
运行
复制
for (ToggleButton btn : buttons)
    if (btn != crtButton)
        btn.setChecked(false);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15208834

复制
相关文章

相似问题

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