以编程方式更改活动的主题, [英] Change Activity's theme programmatically
本文介绍了以编程方式更改活动的主题,的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在特定的情况下,我需要从我的活动中删除对话框主题,但它似乎并不奏效。下面是一个例子
In particular cases I need to remove dialog theme from my activity but it doesn't seem to be working. Here's an example
第一项活动:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startActivity(new Intent(MainActivity.this, SecondActivity.class));
}
第二项活动:
Second activity:
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>
当我运行它的对话框里还是主题。
When I run it's still dialog themed.
API10
感谢。
推荐答案
作为<一个href="http://developer.android.com/reference/android/content/Context.html#setTheme%28int%29">docs说你有什么看法输出之前调用setTheme。看来,super.onCreate()参与视图处理。
As docs say you have to call setTheme before any view output. It seems that super.onCreate() takes part in view processing.
所以,主题之间切换动态,你只需要调用setTheme super.onCreate之前是这样的:
So, to switch between themes dynamically you simply need to call setTheme before super.onCreate like this:
public void onCreate(Bundle savedInstanceState) {
setTheme(android.R.style.Theme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
这篇关于以编程方式更改活动的主题,的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文