Два разных SwitchCompats в двух разных действиях - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть 2 разных SwithCompat в 2 разных действиях, чего я хочу добиться, если я нажму SwitchCompat в Деятельности A, то будет также нажата SwitchCompat в Acctivity B.И наоборот.

Могу ли я добиться этого с помощью этого кода:

aSwitch = findViewById(R.id.switchs);
        aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
              //do something
                }
            }
        });

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Вы можете определить интерфейс как обратный вызов в первом действии для второго действия, как это:

    public class ActivityOne{ 

           private ICallback mICallback;
           private SwitchCompat mSwitchButton;

            public interface ICallback {

                void getData(boolean state);

            }

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

            mICallback.getData(isChecked);
        }
    });
    }

И в TwoActivity:

public class TwoActivity implements OneActivity.ICallback{

  @Override
    public void getData(boolean state) {

//YOU CAN USE IT HERE IN SECOND ACTIVITY

    }

}

Возможно, вы сталкиваетесь с обратным вызовом в NULL вПервое действие, затем вы должны передать контекст при переходе ко второму действию из первого действия.

0 голосов
/ 06 декабря 2018

прежде всего, когда вы проходите пакет для открытого второго прохода действия с пакетом

Intent mIntent = new Intent(this, Example.class);
Bundle mBundle = new Bundle();
mBundle.putString(key, value);
mIntent.putExtras(mBundle);

и получаете пакет во втором действии

boolean value = getIntent().getExtras().getBoolean(key);

в соответствии с логическим значением, которое вы можете изменитьвкл / выкл

...