24

実行時にアクティビティを実行したいsetThemeのですが、Googleでいくつかのソリューションを検索しています。誰かがsetThemeonCreateとsetContentViewが機能する前に呼び出しを言った、のようなコードセクション

public void onCreate(Bundle savedInstanceState) {
    setTheme(android.R.style.Theme_Translucent_NoTitleBar);
    super.onCreate(savedInstanceState);
    ...
    setContentView(...)
}

しかし、それは機能しません、私は知りたいのですが、テーマをアクティビティに設定できる別の解決策はありますか?

4

4 に答える 4

21

これを試してみてください -super.onCreate(savedInstanceState);前後にテーマを設定してくださいsetContentView(...)

以下のコードのように -

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setTheme(android.R.style.Theme_Translucent_NoTitleBar); // Set here
    setContentView(...)
}
于 2012-06-28T05:26:18.973 に答える
8

実際、これは、呼び出す前に設定した場合にのみ機能しましたsuper.onCreate(savedInstanceState);

public void onCreate(Bundle savedInstanceState)
{
    final int themeRes = getIntent().getIntExtra(EXTRA_THEME_ID, 0);
    if (themeRes != 0) setTheme(themeRes);
    super.onCreate(savedInstanceState);
    //ect...
}
于 2013-02-02T18:28:24.047 に答える
4
setContentView(...);
setTheme(R.style.MyTheme);
setContentView(...);

うまくいくはず..

テーマの詳細については、 http: //entertheinfinity.blogspot.in/2016/06/designing-android-interface-themes.html をお読みください。

于 2016-06-27T07:42:28.513 に答える