2016-12-29 9 views
-3

私は多分ばかげた疑問を持っています。 私はPaint1、Paint2、Paint3の3つのPaintオブジェクトを持っています。読みやすくするために、それらは別々に宣言されています。 3つには属性がほとんどなく、共通のものが1つあります。既存のオブジェクトで配列を塗りつぶす

コレクションの中にそれらを埋めて、forループで色属性を設定する方法はありますか?例えば

Paint paint1, paint2; paint3; 

paint1=new Paint(); 
paint1.setTextSize(10dp); 

paint2=new Paint(); 
paint2.setTextSize(20dp) 

paint3=new Paint(); 
paint3.setTextSize(30dp) 

Paint[] arrayOfPaints = {paint1,paint2,paint3}; 

for(int i = 0; i < arrayOfPaints.length; i++){ 
     arrayOfPaints[i].setColorFilter(color); 
    } 
+4

あなたの例には何が問題なのですか?あなた自身の質問に答えたようです! :D –

+2

誰かが何かを尋ねて、同じ質問で答えました.....それは新しいものです – nobalG

+0

いいえ、いいえ、問題は私がすでに存在するオブジェクトのためにそれをしたいということです。私はすでにPaint Paint1 =新しいPaint()を持っています。ペイントPaint2 =新しいペイント(); –

答えて

0

[OK]これは答えです。

Paint paint1; 
Paint paint2; 
Paint paint3; 

List<Paint> paints = new ArrayList<Paint>(); 
paints.add(paint1); 
paints.add(paint2); 
paints.add(paint3); 

for(Paint paint : paints) { 
paint.setColorFilter(color); 
} 
3

はい、あなたは、ループ内でiを必要としないので、強化されたループを使用することができますし、それがコレクションを入れないようにする方が良いでしょうとしてpaintsは、より良い名前ですが、変数の名前の型実装の詳細:

List<Paint> paints = Arrays.asList(paint1, paint2, paint3); 
for(Paint paint : paints) { 
    paint.setColorFilter(color); 
} 
+0

配列全体を反復処理するのではなく、既に存在し、ループ外で使用されているPaintオブジェクトを配列に埋め込むことです。 –

+0

彼らは別に宣言ところとして、私は '一覧塗料=は、Arrays.asList(paint1、paint2、paint3)のようなものを考える;' –

+0

@SamuelKirschnerが同様にあなたに感謝@SamuelKirschner良い – weston

関連する問題