
所以,我让用户主题,然后读取结果如下:
if (...) { getApplication().settheme(R.style.Blacktheme);} else { getApplication().settheme(R.style.lighttheme);} 不幸的是,由于某种原因,这不起作用….
字体颜色从深灰色(浅色主题)略微转变为更亮的灰色(黑色主题)
但背景总是保持白/黑(取决于最初在清单文件中选择的主题)
如果我完全删除清单文件中的主题条目,那就好像我会选择黑色主题….
….我有什么东西可以俯瞰吗?
解决方法 我有同样的问题,我这样解决了..@OverrIDepublic voID onCreate(Bundle savedInstanceState) { if (getIntent().hasExtra("bundle") && savedInstanceState==null){ savedInstanceState = getIntent().getExtras().getBundle("bundle"); } //add code for theme switch(theme) { case liGHT: settheme(R.style.lighttheme); break; case BLACK: settheme(R.style.Blacktheme); break; default: } super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); //code} 此代码用于重新创建活动保存包并更改主题.
你必须编写自己的onSaveInstanceState(Bundle outState);
从API-11开始,您可以使用recreate()方法
Bundle temp_bundle = new Bundle();onSaveInstanceState(temp_bundle);Intent intent = new Intent(this,MainActivity.class);intent.putExtra("bundle",temp_bundle);startActivity(intent);finish(); 总结 以上是内存溢出为你收集整理的android – 在java中更改主题不会更改背景颜色全部内容,希望文章能够帮你解决android – 在java中更改主题不会更改背景颜色所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)