Я знаю, как применить тему к целому приложению, но куда я могу применить тему только к одному действию?
Применить тему к активности на Android?
Ответ 1
Вы можете применить тему к любому действию, включив android:theme
внутри <activity>
внутри файла манифеста.
Например:
-
<activity android:theme="@android:style/Theme.Dialog">
-
<activity android:theme="@style/CustomTheme">
И если вы хотите установить тему программно, используйте setTheme()
перед вызовом метода setContentView()
и super.onCreate()
внутри метода onCreate()
.
Ответ 2
Чтобы установить его программно в Activity.java:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.MyTheme); // (for Custom theme)
setTheme(android.R.style.Theme_Holo); // (for Android Built In Theme)
this.setContentView(R.layout.myactivity);
Чтобы установить в области приложения в Manifest.xml(все действия):
<application
android:theme="@android:style/Theme.Holo"
android:theme="@style/MyTheme">
Установить в области действия в Manifest.xml(одно действие):
<activity
android:theme="@android:style/Theme.Holo"
android:theme="@style/MyTheme">
Чтобы создать пользовательскую тему, вам придется объявить тему в theme.xml и установить стили в файле styles.xml.
Ответ 3
Прежде чем вы вызовете setContentView()
, вызовите setTheme(android.R.style...)
и просто замените... темой, которую вы хотите (тема, тема_NoTitleBar и т.д.).
Или, если ваша тема является настраиваемой темой, а затем замените всю вещь, так что вы получите setTheme(yourThemesResouceId)