Q:

Deslizar Elemento Switch en lugar de dar Click Android Studio

Buenas tardes, mi duda es bastante simple pero no encuentro como hacer funcionar este elemento en Android Studio:
Switch activar;
Boolean switchState;

activar.setOnClickListener(new View. OnClickListener() {
  @Override public void onClick(View v) {
     switchState = activar.isChecked ();
                switche();
       }
});

private void switche(){
        if(switchState==false){             Toast.makeText(getApplicationContext(),"Desactivado",Toast. LENGTH_SHORT).show();
        btnaceptar.setEnabled(false); }
        if(switchState==true){    Toast.makeText(getApplicationContext(),"Activado",Toast. LENGTH_SHORT).show();
btnaceptar.setEnabled(false);}

Mi codigo funciona correctamente al darle "CLick" en el elemento Switch, sin embargo si se desliza el dedo sobre el para encenderlo o apagarlo no cambia su estado ni ejecuta la clase "switche()", y entiendo que es por que lo tengo con un "setOnClickListener" pero, 
¿como lo debo cambiar para que detecte si se desliza con el dedo en lugar de que se le de click? 
de antemano muchas gracias. 

A:

Puedes implementar algo como esto. 
 private static final String TAG = MainActivity.class.getSimpleName();
 Switch sw;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    sw = (Switch) findViewById(R.id.switch1);

    //Anulas el evento onClick, si haces click
    //Retorna a su estado original
    sw.setOnClickListener(new View. OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.v(TAG,"onClick");
            sw.setChecked(!sw.isChecked());
        }
    });

    //Si mantienes presionado un poco mas de tiempo
    //se ejecuta, pero puedes arrastrar el switch. 
    sw.setOnLongClickListener(new View. OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {
            Log.v(TAG,"onLongClick");
            sw.setChecked(!sw.isChecked());
            switche();
            return true;
        }

    });

}

Aca el metodo switche() un poco modificado. 
private void switche() {

            if (! sw.isChecked()) {
                Toast.makeText(getApplicationContext(), "Desactivado", Toast. LENGTH_SHORT).show();
                //btnaceptar.setEnabled(false);
            } else {
                Toast.makeText(getApplicationContext(), "Activado", Toast. LENGTH_SHORT).show();
                //btnaceptar.setEnabled(false);
            }

    }

