Java 如何在一个按钮上将主题设置为暗
男人们可以用一个按钮从菜单中设置主题??请看屏幕截图,只需一个按钮“反转”即可将“亮”设置为“暗”,将“暗”设置为“亮”?如果可能的话,怎么做??请帮帮我 我的代码:Java 如何在一个按钮上将主题设置为暗,java,android,xml,material-design,toolbar,Java,Android,Xml,Material Design,Toolbar,男人们可以用一个按钮从菜单中设置主题??请看屏幕截图,只需一个按钮“反转”即可将“亮”设置为“暗”,将“暗”设置为“亮”?如果可能的话,怎么做??请帮帮我 我的代码: case R.id.Invert: ThemeUtils.setTheme(this, "dark"); return true; 查看此图:在调用SetContentView 因此,要更改已打开的活动的主题,您需要重新启动它 例如: public void onCreate(Bu
case R.id.Invert:
ThemeUtils.setTheme(this, "dark");
return true;
查看此图:在调用
SetContentView
因此,要更改已打开的活动的主题,您需要重新启动它
例如:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(YOUR_THEME_FROM_SHARED_PREFS);
setContentView(...)
}
及
当然可以。定义主题,您要在style
文件夹中设置。而不是你的字符串写代码R.style.YourOwnTheme
我的意思是一个按钮可以设置两个主题,1。若当前主题为白色,则将灯光设置为黑色,2。如果当前主题为黑色,则按钮会将主题设置为亮??我在2个按钮上创建了主题,我只想在一个按钮上创建,比如“反转”颜色。你必须按照我的回答去做。您无法更改已打开的活动的主题。您可以使用按钮选择主题(这就是您将其保存到共享首选项的原因),但仍需要重新启动活动才能使其在特定视图上生效,它不是主题,而是样式。主题是整个活动或更大的视图组。他不是在问如何更改一个按钮的样式。他在问如何使用一个按钮在黑暗和光明之间切换主题,而不是使用单独的按钮。我已经做了一个主题。但是我想通过当前主题来改变主题,如果(当前主题==Light){setTheme(dark);}或者如果(当前主题==dark){setTheme(Light);}像这样this@WahyuHidayat您可以通过以下代码获取主题:this.getTheme().getResourceId(),然后通过this.getTheme().getResourceId()检查主题==R.风格。YourTheme@WahyuHidayat别忘了在我把代码放在哪里之后重新启动活动??这个.getTheme().GetReourceId()??在主活动上还是在中间活动上@重写公共布尔onOptionsItemSelected(MenuItem项){switch(item.getItemId()){case android.R.id.home:drawerLayout.openDrawer(GravityCompat.START);返回true;case R.id.Invert:ThemeUtils.setTheme(this,“Light”);返回true;}返回super.onOptionsItemSelected(项);}@WahyuHidayat在你的if声明中
case R.id.Invert:
// Set theme in shared Prefs here
this.recreate(); // restart the activity
return true;