当我点击我的ImageView
时,它不会返回所点击图片的ID,但会添加最后一张图片。由于存在13
,因此始终返回12
(0-12)。我不明白我做错了什么。这是我的代码:
ImageView imgBook = null;
tlList = (TableLayout) findViewById(R.id.tl_list1);
public void loadList(){
for (int o = 0; o < studies.size(); o++) {
LayoutInflater li_est = (LayoutInflater) getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
if (LoginVO.app==0) {
vEst = li_est.inflate(R.layout.details1, null);
} else if (LoginVO.app==1) {
vEst = li_est.inflate(R.layout.details2, null);
} else if (LoginVO.app==2) {
vEst = li_est.inflate(R.layout.details3, null);
}
imgBook = (ImageView) vEst.findViewById(R.id.est_img_libro);
imgBook.setId(o);
tlList.addView(vEst);
imgBook.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
idColumn=imgBook.getId();
Log.e("TAG","ID COLUMN: "+idColumn);
}
});
idColumn
始终为12
,即数组的总大小。
有什么问题?
答案 0 :(得分:1)
你需要做这样的事情:
imgBook.setTag(o);
imgBook.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
int id = Integer.parseInt(v.getTag().toString());
}
});
答案 1 :(得分:0)
您需要了解导致该事件的视图。
ImageView imgViewClicked = (ImageView) v;
否则你只是使用imgBook变量,它在for循环中总是有o的最后一个值。