【问题标题】:get state of ToggleButton through handler通过处理程序获取 ToggleButton 的状态
【发布时间】: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 回答的评论

标签: android togglebutton


【解决方案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();
            }
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多