Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在一个按钮上将主题设置为暗_Java_Android_Xml_Material Design_Toolbar - Fatal编程技术网

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;