web-dev-qa-db-ja.com

SwitchCompatウィジェットで状態の変化をリッスンする方法は?

SwitchCompatウィジェットのクリックをリッスンする方法は?スイッチが切り替えられたときにいくつかのステートメントを実行したい。

同等のものを探しています

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 {
                }
            }
        }
    });

これを試して!

49

必要なのはこれだけです(setOnTouchListenerは不要です)。

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

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