如果您使用的是切换按钮或复选框,那么您可以在 SharedPreferences 中存储一个布尔值,并可以使用它来检查用户是否想要夜间模式。即使在应用程序关闭并再次使用后,这仍然有效。
CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
SharedPreferences sharedPreferences = getSharedPreferences("MyData", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
editor.putBoolean("dark", isChecked);
editor.commit();
}
});
然后,在下一个活动中
SharedPreferences preferences = getSharedPreferences("MyData", Context.MODE_PRIVATE);
listView = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> adapter;
if(preferences.getBoolean("dark",false) == true)
adapter = new ArrayAdapter<String>(this,R.layout.list_item_dark,name);
else
adapter = new ArrayAdapter<String>(this,R.layout.list_item,name);
同样,您可以使用此方法更改布局。