2011-11-14 16 views
1

から変更するボタンをクリックすると、アプリケーションのテキストの色を10-15 TextViewに変更します。これらのテキストビューは単一のアクティビティにはありません。テーマのコンセプト以外の方法を実装する方法はありますか?複数のテキストビューのテキストの色をアクティビティ

+0

同じ色または異なる色ですか? –

+0

同じ色です。私の主な問題は、テキストビューをすべて参照する方法です。 – includeMe

答えて

3

TextViewArrayListを作成し、テキストの色を変更するTextView(アプリケーションを初めて起動するとき)を作成するたびに、このArrayListに追加することができます。 その後、ユーザーがボタンをクリックすると、このArrayListにループを実装し、テキストの色を設定するメソッドを呼び出します。

これを達成するには、静的なArrayListが必要な場合があります。

ArrayList<TextView> myAlTv = new ArrayList<TextView>(); 
     myAlTv.add(firstTv); 
     myAlTv.add(secondTv); 
     myAlTv.add(thirdTv); 
     //... 

public void changeColor() 
{ 
    for (int i = 0; i < myAlTv.size(); i++) 
    { 
     myAlTv.get(i).setTextColor(0xFFFF0000); 
    } 
} 
+0

これは私の問題を解決すると思っています..しかし、ずっと簡単な方法ではありませんか? – includeMe

+0

私は見ることができません、ごめんなさい...少し待ってください、多分もっと賢い人があなたを助けてくれるでしょう。 – mthpvg

+0

あなたは、あなたのアクティビティごとに、この特定のアクティビティ内のTextViewの色を変更し、ブール値をtrueに変更するカラーメソッドを変更することもできます。だから、レイアウトを再構築するときに別のアクティビティを開始すると、レイアウトはブール値よりも気になり、その値が変更され、新しいカラーでTextViewsが作成されます...これは面倒です。 – mthpvg

2

sharedPreferencesを使用してこれを行うことができます。ボタンをクリックすると、textviewsが持つべき色をsharedPreferencesオブジェクトに保存できます。そしてあなたの他のアクティビティでは、あなたが前に設定したsharedPreferenceを取得することによってそれらのカラー値を取得することができ、それらのカラー値を他のアクティビティのテキストビューに簡単に割り当てることができます。

+0

選択した色を保存して取り出すことは問題ではありません。テキストビューのオブジェクトを作成せずに色を変更してから、次のオブジェクトを作成することなく、すべてのテキストビューを参照する方法はありますか? – includeMe

+1

オブジェクトを作成せずにオブジェクトにアクセスすることはできませんが、それをいつでも割り当てることができます。 –

関連する問題