当我快速点击滑块时,它会工作,即当我轻轻点击它时,我得到了预期的结果。然而,当我用手指向下滑动它从左到右时,没有任何反应。滑块进入ON状态,但从不调用LocationClicked。我无法找到" onSlide"方法,所以我不知道该怎么做。
我是否必须使用侦听器或者是否有更简单的方法?
XML文件的一部分:
<Switch
android:id="@+id/switch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="@string/location_setting_string"
android:onClick="LocationClicked" />
部分Java代码:
public void LocationClicked(View view) {
Log.i(TAG,"CLICK");
}
我在Galaxy S5上运行4.4.2。
答案 0 :(得分:4)
我轻轻点击,我得到了预期的结果
在这种情况下会触发onToggleClicked
事件。
然而,当我用手指向下滑动它时,没有任何反应。
这是因为幻灯片手势不会触发OnToggleClicked
事件。 (你没有点击它)
要抓住两者,你可以使用
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// The toggle is enabled
} else {
// The toggle is disabled
}
}
});
只要切换状态发生变化,就会触发。如果你点击它或滑动它并不重要,状态会发生任何变化。