Romag Asked:2020-10-13 00:54:28 +0000 UTC2020-10-13 00:54:28 +0000 UTC 2020-10-13 00:54:28 +0000 UTC 如何以编程方式更改应用程序的样式 772 在 xml 中,您可以编写这样的代码以更改样式 @android:style/Theme.Material.Light.DarkActionBar 如何在 Java 代码中执行相同的操作。 java 2 个回答 Voted Best Answer MatWay 2020-10-13T05:48:07Z2020-10-13T05:48:07Z 要在设置中实现样式更改 - 当您选择所需的主题时,在首选项中记下其 ID,然后重新创建活动。在活动本身的方法中,使用首选项中的 idonCreate()调用方法。setTheme它看起来像这样: public void changeTheme() { PreferencesManager.getInstance().setAppTheme(selected_theme_id); restart(); } public void restart() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { recreate(); } else { finish(); Intent intent = new Intent(this, YourActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } } 并onCreate()添加: @Override protected void onCreate(Bundle savedInstanceState) { setTheme(PreferencesManager.getInstance().getAppTheme()); super.onCreate(savedInstanceState); setContentView(getActivityResource()); } Silento 2020-10-13T01:05:14Z2020-10-13T01:05:14Z 在方法setTheme()中使用onCreate()方法。 例如对于Holo setTheme(android.R.style.Theme_Holo); setContentView(R.layout.activity);
要在设置中实现样式更改 - 当您选择所需的主题时,在首选项中记下其 ID,然后重新创建活动。在活动本身的方法中,使用首选项中的 id
onCreate()调用方法。setTheme它看起来像这样:并
onCreate()添加:在方法
setTheme()中使用onCreate()方法。例如对于
Holo