0

我的一个活动中有一个开关,当用户以任何方式与其交互时,onSwitchClick应该执行一个调用的方法。目前,当开关被轻敲(从打开和关闭位置)时,该功能会执行,但不会在通过手指移动将开关从一个位置“拖动”到另一个位置时执行。但是,我知道正在设置开关的状态,因为在某些情况下将其关闭的另一种方法确实可以正常工作。

格式化活动的相关布局代码部分。

<Switch
    android:id="@+id/switch_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="onSwitchClick"
    android:paddingLeft="5dp"
    android:paddingTop="5dp"
    android:text="@string/switch_text" />
4

1 回答 1

1

仅在单击视图时才调用单击侦听器。要观察选中状态的变化,例如将开关拇指拖到打开或关闭位置时,请改用OnCheckedChangeListener

Switch switchButton = (Switch) findViewById(R.id.switch_button);
switchButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        ...
    }
});
于 2015-04-07T17:58:00.773 回答