以编程方式更改活动的主题

用户名

在某些情况下,我需要从活动中删除对话框主题,但是它似乎不起作用。这是一个例子

第一次活动:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    startActivity(new Intent(MainActivity.this, SecondActivity.class));
}

第二项活动:

public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setTheme(android.R.style.Theme);
    setContentView(R.layout.activity_second);
}

清单摘录:

 <activity android:name="SecondActivity" android:theme="@android:style/Theme.Dialog"></activity>

当我运行它时,仍然以对话框为主题。

API10

谢谢。

用户名

文档所述,您必须setTheme在任何视图输出之前调用似乎super.onCreate()参与了view处理。

所以,动态主题,你只需要调用之间切换setTheme之前super.onCreate是这样的:

public void onCreate(Bundle savedInstanceState) {
    setTheme(android.R.style.Theme);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章