18

現在、私はこのビューの配列を持っています:

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

バターナイフを使用してこれらすべてのビューを注入する方法はありますか? それらを配列に保持する必要があります(または、それらを反復できるようにする必要があります)。

4

2 に答える 2

2

配列に追加される要素は動的であると思います。そうでない場合は、ヘッダーで要素を 1 つずつ宣言してから、配列に追加するだけです。

// 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、キャストを節約する whichを使用することだけです。ImageViewバターナイフは何をすべきかわからないため、注釈を介してそれらを注入することはできません。コンパイル時に生成/挿入します (情報は実行時に最初に利用可能になります)。

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)
};
于 2014-02-17T13:51:08.537 に答える