使用Butterknife注入一组视图

alu*_*ian 16 android 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)
};
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用Butterknife来注入所有这些观点?我需要将它们保存在一个数组中(或者以某种方式让它可以迭代它们).

Sne*_*neg 46

目前可以将多个视图作为数组注入.从ButterKnife 文档(参见VIEW LISTS 部分)

@InjectViews({ R.id.first_name, R.id.middle_name, R.id.last_name })
List<EditText> nameViews;
Run Code Online (Sandbox Code Playgroud)

多个单击侦听器也是如此:

@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();
  }
}
Run Code Online (Sandbox Code Playgroud)

更新2017-09-19:自Butterknife版本7.0.0(2015-06-27) @Bind更换@InjectView@InjectViews.但由于版本版本8.0.0(2016年4月25日) @Bind被替换@BindView,并@BindViews分别为一个视图和多视图.所以现在正确的语法是:

@BindView(R.id.button1) Button button1;
@BindView(R.id.button2) Button button2;

@BindViews({ R.id.first_name, R.id.middle_name, R.id.last_name })
List<EditText> nameViews;
Run Code Online (Sandbox Code Playgroud)