android.widget.Switch - 开/关事件监听器?

新手上路,请多包涵

我想实现一个开关按钮,android.widget.Switch(可从 API v.14 获得)。

 <Switch
    android:id="@+id/switch1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Switch" />

但我不确定如何为按钮添加事件侦听器。它应该是一个“onClick”监听器吗?我怎么知道它是否“打开”?

原文由 Johan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

Switch 继承 CompoundButton 的属性,所以我会推荐 OnCheckedChangeListener

 mySwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        // do something, the isChecked will be
        // true if the switch is in the On position
    }
});

原文由 Sam 发布,翻译遵循 CC BY-SA 3.0 许可协议

2020 年 9 月 - 以编程方式回答

您可以通过编程方式为 Switch Widget 和 Material Design 执行此操作:

 Switch yourSwitchButton = findViewById(R.id.switch_id);

yourSwitchButton.setChecked(true); // true is open, false is close.

yourSwitchButton.setOnCheckedChangeListener((compoundButton, b) -> {
        if (b){
          //open job.
        }
        else  {
          //close job.
        }
    });

原文由 nonstopdevlife 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题