web-dev-qa-db-fra.com

Comment écouter les changements d'état dans le widget SwitchCompat?

Comment écouter les clics sur le widget SwitchCompat? Je veux exécuter quelques instructions lorsque le commutateur est basculé.

Vous recherchez un équivalent de

button.setOnClickListener(new View.OnClickListener() {
    @Override
        public void onClick(View view) {
        //Do something
    }
});
23
Slay
static Boolean isTouched = false;

switchButton.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                isTouched = true;
                return false;
            }
        });

switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
    {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {
            if (isTouched) {
                isTouched = false;
                if (isChecked) {
                }
                else {
                }
            }
        }
    });

Essaye ça!

49
Konstantin Loginov

vous n'avez besoin que de cela (le setOnTouchListener n'est pas nécessaire):

switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
    {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
        {

                if (isChecked) {
                     //if 'isChecked' is true do whatever you need...
                }
                else {
                }
            }
        }
    });
8
batsheva

Avec changement d'état Butterknife SwitchCompat

@OnCheckedChanged(R.id.switchCompat)
        public void onCheckedChanged(SwitchCompat switchCompat, boolean isChecked){
            Log.i("skh","check:"+isChecked);

            if (isChecked) {
               // Log.i("skh","check:"+isChecked);
            }
            else {

            }
1
Shomu