通过处理程序获取 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 的状态的主要内容,如果未能解决你的问题,请参考以下文章
使用 SharedPreferences 在 ListView 中保存 ToggleButton 状态