这是我在settings.java类中的代码。我已经实现了我的设置类,就像这样。我想让黑暗的主题,杀死应用程序后,它必须存在于那里,以及切换必须是真实的。
现在我已经实现了使它变暗。但是当我杀死应用程序,再次出现时,它会消失。切换也会关闭。
public class settings extends AppCompatActivity {
SwitchCompat switchCompat;
ImageView backbtn;
Button button;
@SuppressLint("WrongViewCast")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
if (AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_YES) {
setTheme(R.style.Base_ThemeOverlay_AppCompat_Dark);
} else {
setTheme(R.style.Base_Theme_MaterialComponents_Light);
}
backbtn = findViewById(R.id.goingback);
LoadingDialod loadingDialod = new LoadingDialod(settings.this);
backbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
}
});
switchCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if (isChecked) {
loadingDialod.startloadinganimation();
new Handler().postDelayed(new Runnable() {
@Override
public void run() { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
Intent intent = new Intent(getApplicationContext(), settings.class);
startActivity(intent);
}
}, 800);
} else {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}
}
});
}
}
字符串
2条答案
按热度按时间qzlgjiam1#
我已经在这里给出了答案,但我也在这里给出:
1.创建名为首选项管理器的类
1.将此代码粘贴到类中
👇
字符串
1.然后在片段中创建一个名为preferences manager的对象,如下所示。
第一个月
1.然后像这样增加它的价值
如果夜间模式设置为打开。
preferencesManager.putBoolean("NightMode",true);
个如果夜间模式关闭
preferencesManager.putBoolean("NightMode",false);
个然后稍后检查夜间模式是否打开或关闭,使用此代码
型
编辑
或者,您也可以在此处使用my library来存储数据。
rseugnpd2#
这个答案提供了Android对黑夜模式的适应,黑暗主题适用于Android 10(API级别29)及更高版本,这是一个前提条件。
适用于API 29 - API 30
如果您要在应用程序中全局启用黑夜模式,则需要满足以下条件:
1.对应的活动应继承自AppCompatActivity。
1.在适当的位置呼叫下列程式码,以启用应用程序中的全域暗模式。
字符串
适用于API 31及更高版本
如果您要在应用程序中全局启用黑夜模式,则需要满足以下条件:
1.获取用户模式管理器。
型
1.在适当的位置呼叫下列程式码,以启用应用程序中的全域暗模式。
型