Ich nehme an, dass die Elemente zum Array dynamisch hinzugefügt werden, sonst kann man sie einfach eins nach dem anderen in Ihrem Header deklarieren und anschließend fügen Sie sie in das Array:
// in the header:
@InjectView(R.id.imageview1) ImageView imageView1;
@InjectView(R.id.imageview2) ImageView imageView2;
@InjectView(R.id.imageview3) ImageView imageView3;
// inside your code:
ImageView activityImageViews[] = {
imageView1, imageView2, imageView3
};
Aber wie auch immer, wenn die Elemente dynamisch (in der Anzahl der Elemente/ID der Elemente etc.) das einzige, was Sie tun können, ist ButterKnife.findById
zu verwenden, was die ImageView
Umwandlung vermeidet - Sie können sie nicht über Annotation injizieren, weil Butterknife nicht weiß, was Sie beim Kompilieren generieren/injizieren müssen Zeit (die Information ist erst zur Laufzeit verfügbar).
ImageView activityImageViews[] = {
ButterKnife.findById(view, R.id.img_activity_1),
ButterKnife.findById(view, R.id.img_activity_2),
ButterKnife.findById(view, R.id.img_activity_3),
ButterKnife.findById(view, R.id.img_activity_4)
};
Gerade stolperte vor kurzem auf Buttermesser so weiß nicht, ob es das direkt unterstützt, aber warum nicht nur einzeln injizieren und sie in einem Array sammeln oder eine Liste innerhalb onCreate? – cYrixmorten