gpt4 book ai didi

java - 无法从切换按钮到第二个 Activity 获取值

转载 作者:行者123 更新时间:2023-12-02 10:00:56 26 4
gpt4 key购买 nike

我为“黑暗模式”之类的东西制作了一个切换按钮,基本上它应该改变应用程序颜色,并且它确实如此,但仅在第一个 Activity 中,然后,当我尝试将 boolean 值传递给第二个 Activity 时不会改变任何东西的颜色。

主要 Activity :

        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);
...

第二个 Activity :

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

最佳答案

您可以像这样创建一个 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();
}
}

并设置所有 Activity 的值,如下所示:-设置优先开关值:-

setSwitchValue(MainActivity.this, true);

获取所有 Activity 中的开关值:-

getSwitchValue(MainActvity2.class);

关于java - 无法从切换按钮到第二个 Activity 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55636103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com