Использование Butterknife для ввода массива представлений

В настоящее время у меня есть такой массив представлений:

ImageView activityImageViews[] = { (ImageView) rootView.findViewById(R.id.img_activity_1), (ImageView) rootView.findViewById(R.id.img_activity_2), (ImageView) rootView.findViewById(R.id.img_activity_3), (ImageView) rootView.findViewById(R.id.img_activity_4) }; 

Есть ли способ, которым я мог бы использовать Butterknife, чтобы ввести все эти взгляды? Мне нужно держать их в массиве (или в некотором роде, чтобы я мог перебирать их).

В настоящее время в качестве массива можно добавить несколько представлений. Из документации ButterKnife (см. Раздел VIEW LISTS)

 @InjectViews({ R.id.first_name, R.id.middle_name, R.id.last_name }) List<EditText> nameViews; 

То же самое для нескольких кликов:

 @OnClick({ R.id.door1, R.id.door2, R.id.door3 }) public void pickDoor(DoorView door) { if (door.hasPrizeBehind()) { Toast.makeText(this, "You win!", LENGTH_SHORT).show(); } else { Toast.makeText(this, "Try again", LENGTH_SHORT).show(); } } 

Я полагаю, что элементы, добавленные в массив, динамически, иначе вы можете просто объявить их в своем заголовке один за другим, а затем добавить их в массив:

 // 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 }; 

Но, если элементы динамические (в количестве элементов / id элементов и т. Д.), Единственное, что вы можете сделать, это использовать ButterKnife.findById который пощадит ButterKnife.findById ImageView – вы не можете вводить их через аннотацию, потому что Butterknife делает Не знаю, что генерировать / вводить во время компиляции (информация впервые доступна во время выполнения).

 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) };