Не могу получить значение от кнопки переключателя до второго действия - PullRequest
0 голосов
/ 11 апреля 2019

Я сделал кнопку переключения для чего-то вроде «темного режима», в основном это должно изменить цвет приложения, и это происходит, но только в первом действии, затем, когда я пытаюсь передать логическое значение во второе действие, этоне меняет цвет чего-либо.

Основная деятельность:

        public void nightview(View view) {
    Intent intent4 = new Intent(this, DisplayResultActivit.class);
    Switch sw1 = findViewById(R.id.nightview);
    boolean switchstate = sw1.isChecked();
    intent4.putExtra("state", switchstate);
    if (switchstate) {
        //nightview
        View lay = findViewById(R.id.layout); 
        ...    

2-я деятельность:

    boolean state = getIntent().getExtras().getBoolean("state");
        if (state) {
            //nightview
            View lay2 = findViewById(R.id.layout2);
            lay2.setBackgroundColor(Color.BLACK);
            TextView tv1 = findViewById(R.id.textView);
            tv1.setTextColor(Color.WHITE);
            tv.setTextColor(Color.WHITE);
        } else {
            //dayview
            View lay2 = findViewById(R.id.layout2);
            lay2.setBackgroundColor(Color.WHITE);
            TextView tv1 = findViewById(R.id.textView);
            tv1.setTextColor(Color.BLACK);
            tv.setTextColor(Color.BLACK);
        }

1 Ответ

1 голос
/ 11 апреля 2019

вы можете создать класс AppPreference следующим образом: -

public class AppPrefrences {

    private static SharedPreferences mPrefs;
    private static SharedPreferences.Editor mPrefsEditor;

    public static boolean getSwitchValue(Context ctx) {
        mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
        return mPrefs.getBoolean("switch", false);
    }

    public static void setSwitchValue(Context ctx, Boolean value) {
        mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
        mPrefsEditor = mPrefs.edit();
        mPrefsEditor.putBoolean("switch", value);
        mPrefsEditor.commit();
    }
}

и установить значения из всех действий следующим образом: - установить значение переключателя в предпочтении: -

setSwitchValue(MainActivity.this, true);

чтобы получить значение переключателя во всех активах: -

getSwitchValue(MainActvity2.class);
...