it-swarm.com.de

Ein Thema auf eine Aktivität in Android anwenden?

Ich weiß, wie man ein Thema auf eine ganze Anwendung anwendet, aber wohin soll ich gehen, um ein Thema nur auf eine einzelne Aktivität anzuwenden?

71
Willy

Sie können jedem Vorgang ein Thema zuweisen, indem Sie Android:theme In <activity> In die Manifestdatei einfügen.

Beispielsweise:

  1. <activity Android:theme="@Android:style/Theme.Dialog">
  2. <activity Android:theme="@style/CustomTheme">

Wenn Sie das Thema programmgesteuert festlegen möchten, verwenden Sie setTheme(), bevor Sie setContentView() und super.onCreate() innerhalb der onCreate() -Methode aufrufen.

141
Paresh Mayani

So legen Sie es programmgesteuert in Activity.Java fest:

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

So legen Sie den Anwendungsbereich in Manifest.xml fest (alle Aktivitäten):

 <application
    Android:theme="@Android:style/Theme.Holo"
    Android:theme="@style/MyTheme">

So legen Sie den Aktivitätsbereich in Manifest.xml fest (einzelne Aktivität):

  <activity
    Android:theme="@Android:style/Theme.Holo"
    Android:theme="@style/MyTheme">

Um ein benutzerdefiniertes Design zu erstellen, müssen Sie das Design in der Datei themes.xml deklarieren und die Stile in der Datei styles.xml festlegen.

30
live-love

Bevor Sie setContentView() aufrufen, rufen Sie setTheme(Android.R.style...) auf und ersetzen Sie einfach ... durch das gewünschte Thema (Theme, Theme_NoTitleBar, etc.).

Wenn es sich bei Ihrem Thema um ein benutzerdefiniertes Thema handelt, ersetzen Sie das gesamte Thema, sodass Sie setTheme(yourThemesResouceId) erhalten.

8
jcw