当前位置: 首页 > 知识库问答 >
问题:

Android应用内改主题

左丘昕
2023-03-14

如何改变android应用程序内的主题?我有活动设置,我可以选择光明或黑暗的主题。

public class OTGEnabler extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener
{
@Override
protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_otgenabler);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
        String theme = sharedPrefs.getString("Choose Theme",null);
        if(theme != null && theme.equals("Light"))
        {
            setTheme(R.style.AppTheme);
        }
        else
        {
            setTheme(R.style.AppTheme_AppBarOverlay);
        }
    }
}

以下是错误日志:

共有1个答案

秦育
2023-03-14

在调用SetContentView(...)Super.OnCreate()之前,可以在OnCreate内部使用SetTheme(...)并且它应该可以工作,而不是在它们之后!

额外帮助

在视图中添加编辑文本

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppThemeTwo" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorAccent">@color/blue</item>
</style>
 类似资料:
  • 本文向大家介绍Android应用动态修改主题的方法示例,包括了Android应用动态修改主题的方法示例的使用技巧和注意事项,需要的朋友参考一下 1.使用API设置主题 如下所示,在Activity中使用setTheme 2.调用API的时机 需要在super.onCreate(savedInstanceState)之前调用setTheme 3.重新设置主题 要重新设置主题,则需要结束Activit

  • 我尝试这样更改我的AndroidManifest: 但现在这个名字到处都是(在主页和应用程序的标题上)“[T]ime[T]racking[M]anager”。我怎么能给他们起不同的名字呢?

  • 我做了4个按钮。每个按钮都可以使用something.changetoTheme(this,something.black)将背景颜色更改为不同的颜色;它工作得很好,但在我关闭应用程序并重新启动后,主题总是设置为默认。有没有办法保存上一个会话的背景,并在重新打开应用程序时查看它?

  • 我正在尝试返回Json文件的内容。但是我想在将其发送到前端之前进行修改。我想在文件的开头和结尾添加“[”和“]”。我这样做是因为json文件有。 例如,提取结果,如图所示 问题 是否可以更改响应主体并将其放回ResponseEntity? 源代码

  • 我是初学者。当我开始使用webview制作应用程序时。 我在上面看到了https://developer.android.com/reference/android/webkit/WebViewClient#shouldOverrideUrlLoading(android.webkit.WebView,java.lang.String) 当URL即将加载到当前WebView中时,让宿主应用程序有机

  • 与 主题变得黑暗,在“风格”中造型它没有效果。我甚至删除了基本的applicaion主题--没有效果。所以,这不是一个合适的方式。需要任何帮助,我甚至不知道下一步该怎么办。