我有一个根据下面的 XML 的开关小部件,并具有 onToggleClicked 功能,当您单击开关时它工作正常。但我注意到的是,您实际上可以将开关从一个位置滑动到另一个位置,并且在他的情况下不会触发 onClick 事件。如何禁用开关的滑动或如何监控开关的状态变化?多谢。
问问题
1229 次
1 回答
5
我发现只有一种方法可以使用 CompoundButton 类中的 OnCheckedChangeListener 来监听开关的滑动事件。像这样,例如:
exampleSwitch = (Switch) findViewById(R.id.exampleSwitchID);
exampleSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//your actions when the button has changed the status
//the boolean isChecked tells you if the button is activated or not
}
};);
这可能存在的唯一问题是,如果您以编程方式更改按钮的状态(exampleSwitch.setChecked(boolean)),它将触发侦听器。如果您不希望发生这种情况,请在设置按钮状态之前将侦听器设置为 null。例如:
exampleSwitch.setOnCheckedChangeListener(null);
exampleSwitch.setChecked(boolean);
exampleSwitch.setOnCheckedChangeListener(listener);
我希望这会有所帮助。
于 2014-07-17T13:18:51.160 回答