2016-12-29 4 views
-3

У меня есть, возможно, довольно глупые вопросы. У меня есть 3 объекта Paint - Paint1, Paint2, Paint3. Для удобства чтения они объявляются отдельно. Все 3 из них имеют несколько разных атрибутов и один общий - цвет.Заполнение массива существующими объектами

Есть ли способ заполнить их внутри какой-либо коллекции и установить атрибут цвета для цикла?

Для примера:

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 = new Paint(); и Paint Paint2 = новая Paint(); –

ответ

0

Хорошо, так что это ответ.

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

Как они объявляются отдельно, я думаю, что-то вроде «Список paints = Arrays.asList (paint1, paint2, paint3);' отсутствует –

+0

@SamuelKirschner звучит хорошо – weston