Android 如何正确获取 Switch 的值?

新手上路,请多包涵

我正在创建一个使用 SwitchAndroid 应用程序。

我正在尝试侦听更改并在更改时获取值。

使用开关时我有两个问题:

  1. 我用什么 action listener
  2. 如何获得 switch 值?

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

阅读 2.1k
2 个回答
Switch s = (Switch) findViewById(R.id.SwitchID);

if (s != null) {
    s.setOnCheckedChangeListener(this);
}

/* ... */

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    Toast.makeText(this, "The Switch is " + (isChecked ? "on" : "off"),
                   Toast.LENGTH_SHORT).show();
    if(isChecked) {
        //do stuff when Switch is ON
    } else {
        //do stuff when Switch if OFF
    }
}

提示: isChecked 是新的开关值[ truefalse ]不是旧的。

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

试试这个

@OnClick({R.id.sw_auto_reload})
void onChangedAutoReload(){
    Switch s = (Switch) findViewById(R.id.sw_auto_reload);
    if (s != null) {
        s.setOnCheckedChangeListener(this);
        s.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                paymentSettingsPresenter.onAutoReload(b);
            }
        });
    }
}

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

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