通过处理程序获取 ToggleButton 的状态

Posted

技术标签:

【中文标题】通过处理程序获取 ToggleButton 的状态【英文标题】:get state of ToggleButton through handler 【发布时间】:2011-10-31 20:02:57 【问题描述】:

我需要能够访问ToggleButton 的状态,这是因为无法为ToggleButton 的特定状态创建方法。所以这是我目前所处的位置:

ToggleButton syncSwitch = (ToggleButton)findViewById(R.id.toggleButton1);
syncSwitch.setOnClickListener(new OnClickListener()
    @Override
    public void onClick(View view)
        Toast.makeText(getApplicationContext(), "Click!", Toast.LENGTH_SHORT).show();
    
);

现在我只需要某种布尔方法,它可以告诉处理程序ToggleButton 的状态。

【问题讨论】:

syncSwitch.isChecked() 没有帮助? 查看我对 Nikolay 回答的评论 【参考方案1】:

“为特定状态创建方法”是什么意思?您可以使用isChecked() 获取状态。

【讨论】:

好吧,这很奇怪。你是对的,但我一直在 ToggleButton 文档上下,但我没有看到。 有时方法是隐藏的,因为它是从其他类继承而来的。无论如何,文档确实很烂,isChecked() 在 android.widget.CompoundButton 我不会说这很糟糕。您只需单击“继承方法”链接,列表中就有一个非常恰当地命名为“可检查”的接口。默认情况下隐藏细节,但这是一项功能,因为 UI 小部件的继承层次结构可能非常深。 @ruhalde 如果文档中列出了您所说的所有继承方法,那么我可能会再次抱怨它很糟糕,因为方法几乎在每个类中都重复。【参考方案2】:

您也可以像这样使用 togglebtn.setOnCheckedChangeListener Listener 进行检查:

ToggleButton toggle = (ToggleButton) findViewById(R.id.toggle);
toggle.setOnCheckedChangeListener(new OnCheckedChangeListener() 

@Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
                Toast.makeText(getApplicationContext(),
                        String.valueOf(buttonView.isChecked()), Toast.LENGTH_SHORT).show();
            
        );

【讨论】:

以上是关于通过处理程序获取 ToggleButton 的状态的主要内容,如果未能解决你的问题,请参考以下文章

ToggleButton开关状态按钮控件

PyQt4开关按钮ToggleButton

使用 SharedPreferences 在 ListView 中保存 ToggleButton 状态

Android——图片视图(ImageView)状态开关按钮(ToggleButton)时钟

ToggleButton,状态选择按钮,可以动态显示布局

Android零基础入门第21节:ToggleButton和Switch使用大全