94

テーマをアプリケーション全体に適用する方法は知っていますが、テーマを 1 つのアクティビティだけに適用するにはどこに行けばよいでしょうか?

4

3 に答える 3

170

マニフェスト ファイルandroid:theme内に含めることで、任意のアクティビティにテーマを適用できます。<activity>

例えば:

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

そして、プログラムでテーマを設定したい場合は、setTheme()呼び出しの前に使用しsetContentView()super.onCreate()メソッド内でonCreate()メソッドを使用します。

于 2013-10-01T20:25:58.940 に答える
36

プログラムで 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 スコープで設定するには (単一のアクティビティ):

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

カスタム テーマを作成するには、themes.xml ファイルでテーマを宣言し、styles.xml ファイルでスタイルを設定する必要があります。

于 2014-10-23T16:46:49.733 に答える
8

を呼び出す前にsetContentView()、呼び出しsetTheme(android.R.style...)て ... を必要なテーマ (Theme、Theme_NoTitleBar など) に置き換えます。

または、テーマがカスタム テーマの場合は、全体を置き換えてください。setTheme(yourThemesResouceId)

于 2013-10-01T20:21:52.050 に答える