利用Gallery做了一个画廊效果,然后点击每一张图片显示获取照片的时间
献上代码:
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
// 当Gallery选中项发生改变时触发该方法,timeList是每张照片的时间数组
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
imageView.setImageBitmap(finalbitmaps.get(position));
final String s = timeList.get(position);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(FPFloatingPeopleScrutinyCarPhoto.this, s, 2 * 1000).show();
}
});
}
@Override
public void onNothingSelected(AdapterView> parent) {
}
});
此时的代码是可以正常运行的,但是一旦我把toast里面要显示的s,改为
Toast.makeText(FPFloatingPeopleScrutinyCarPhoto.this, timeList.get(position), 2 * 1000).show();
直接报错要求把position改为final,我不明白的地方就是既然声明了s是final了那说明值就是不可改变的,既然不可改变为什么每次点击不同的图片显示的时间却是不一样的,望高手给小弟解惑?