项目需要点击缩略图的时候获取所在列表的序号,就可以做删除操作了,传统的写法内部的 i 必须定义为 final,然后 final 是不能修改的, i 就不能自加了。
void updateThumbnails() {
linearLayout.removeAllViews();
int i = 0;
for (Map map : list_image) {
final String path = map.get("path").toString();
imageView_thumbnail.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
imageView.setImageBitmap(readBitmap(path));
index = i;
}
});
linearLayout.addView(imageView_thumbnail);
i++;
}
}
然后找到了这个:https://cloud.tencent.com/developer/ask/115213,封装到函数里传参,改成这样:
void updateThumbnails() {
linearLayout.removeAllViews();
int i = 0;
for (Map map : list_image) {
final String path = map.get("path").toString();
ImageView imageView_thumbnail = new ImageView(this);
imageView_thumbnail.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
imageView.setImageBitmap(readBitmap(path));
index = i;
}
});
setOnClick(imageView_thumbnail, path, i);
linearLayout.addView(imageView_thumbnail);
i++;
}
}
void setOnClick(final View view, final String path, final int index1) {
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imageView.setImageBitmap(readBitmap(path));
index = index1;
}
});
}