Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change Activity's theme programmatically

Tags:

android

In particular cases I need to remove dialog theme from my activity but it doesn't seem to be working. Here's an example

First activity:

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); } 

Manifest excerpt:

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

When I run it's still dialog themed.

API10

Thanks.

like image 258
user1462299 Avatar asked Jul 19 '12 13:07

user1462299


1 Answers

As docs say you have to call setTheme before any view output. It seems that super.onCreate() takes part in view processing.

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); } 
like image 85
user1462299 Avatar answered Sep 21 '22 06:09

user1462299