2014-11-25 3 views
0

Я скопировал код с here довольно много дословных. То, что я получаю, выглядит как this.Включить onclick не вызывается, когда переключатель сдвинут

Он работает, когда я быстро нажимаю ползунок, т. Е. Когда я слегка касаюсь его, я получаю ожидаемый результат. Однако, когда я сдвигаю его слева направо, держа палец вниз, ничего не происходит. Ползунок переходит в состояние 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"); 
} 

Я бегу 4.4.2 на Galaxy S5.

ответ

3

Я постучите немного я получаю ожидаемый результат

В этом случае 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 
     } 
    } 
}); 

This пожары, когда состояние переключения изменяется. Неважно, если вы нажмете его или сдвиньте, состояние изменится в любом случае.

Смежные вопросы