3

Java でアプリケーション全体textbackground を変更したいのですが、可能ですか? これにより、アプリケーション内のすべてのアイテム (アイテムTextViews, ListView、すべて)の色を変更することを意味します。

これは可能ですか?

カスタムメイドのスタイルを使用しようとしましたが、うまくいきません。これがxmlファイルです(res/layout/valuesフォルダーに入れます):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Light">
        <item name="android:textColor">#00FF00</item>
    </style>
</resources>

今のところ、テキストの色を変更したいとしましょう。

このスタイルをアプリケーションで次のように呼び出します。

public void onCreate(Bundle icicle) {

    Activity.setTheme(android.R.style.light);
    super.onCreate(icicle);
    setContentView(R.layout.main);

しかし、エラーが発生しますlight cannot be resolved or is not a field

アップデート:

プログラムでこれを行う方法の 1 つは、アクティビティを再起動して、次の呼び出しを行うことです。

this.setTheme(R.style.Light);
onCreate(null);

ただし、これは現在のアクティビティに対してのみ機能し、アプリケーション全体では機能しません。現在のアクティビティだけでなく、別のアクティビティを起動してこれを行うことができれば素晴らしいことです。

4

3 に答える 3

1

あなたはそれを少し単純な方法で試しています。このように、そこにあるすべての異なるビューではなく、一般的なアクティビティの背景を調整しているだけです.

すべてのタイプのビュー (Button、TextView など) を試して調整するには、すべての独自のスタイルに対処して上書きする必要があります。

たとえば、Button を調整する場合は、独自の一般的なスタイルが必要になります。

 <item name="android:buttonStyle">@style/ButtonHoloDark</item>

これは、Android の標準ボタンから親を取得する独自のカスタム スタイルを指します。

<style name="ButtonHoloDark" parent="android:style/Widget.Button">
    <item name="android:background">@drawable/btn_default_holo_dark</item>
    <item name="android:textColor">#ffffff</item>
</style>

すべてのビューに対してこれを行うと、かなりのテーマとスタイルが必要になることに注意してください。

HoloEverywhere libでこれを正確に行う方法の優れた例を見つけることができます。これは、Android 2.2 などにバックポートされたホロテーマを作成する場合と基本的に同じです。

最後に、Activity.setTheme(android.R.style.light); をドロップします。マニフェストを介して独自のテーマを設定するだけです。

于 2013-01-11T11:12:48.453 に答える
1

putExtraそれは、インテントとメソッドを使用してアクティビティ間でテーマ情報を渡すことです。

最初のアクティビティ (呼び出し元) のコード:

Intent i = new Intent(this, ActivityToCall.class);
i.putExtra("key", R.style.Light);
startActivity(i);

2 番目のアクティビティ (呼び出されたアクティビティ) のコード:

public void onCreate(Bundle icicle) {
    int theme = getIntent().getIntExtra("key",-1);
    this.setTheme(theme);
    super.onCreate(icicle);
    // other code...

それが最善のアプローチであるかどうかはわかりませんが、少なくとも機能します。

于 2013-01-11T13:19:50.417 に答える
0

変更する属性は次のとおりです。

<style name="AppTheme" parent="android:style/Theme.Holo">
   <item name="android:textColorPrimary">...</item>
   <item name="android:textColorSecondary">...</item>
</style>

それらを変更するには、他にもいくつかの方法があります:この情報を参照してください。

setTheme(R.style.AppTheme)次に、マニフェストまたはアクティビティでこのテーマを設定できますonCreate(...)

于 2013-01-11T11:16:14.987 に答える