2011-11-01 82 views
0

我在一个循环中编程地制作了许多imageView,并为它们分配了id。但是,在onClick方法中,我需要获取图像的ID,它只返回最后一张图片的ID。我如何获得点击图像的ID?获取图像视图的ID

我使用的代码:

for (int j = 0; j < 5; j++) { 
    TableRow tr = new TableRow(this); 
    imageUrl = "http://ondamove.it/English/images/users/"; 
    imageUrl = imageUrl + listObject.get(j).getImage(); 

    image = new ImageView(this); 
    image.setPadding(20, 10, 0, 0); 
    image.setId(j+1); 
    tr.addView(image); 
    try { 
     new DownloadFileAsync(image, new URL(imageUrl)) 
       .execute(imageUrl); 
     images.add(image); 
     //images = new ImageView[5]; 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
    tr.addView(image); 
    table.addView(tr, new TableLayout.LayoutParams(
     LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
    image.setOnClickListener(clickImageListener); 

以下是onclicklistener。

private OnClickListener clickImageListener = new OnClickListener() { 
    public void onClick(View v) { 
     imageId = image.getId(); 
     Intent fullScreenIntent = new Intent(v.getContext(),FullImageActivity.class); 
     fullScreenIntent.putExtra(ProfilePageNormalUser.class.getName(),imageId); 
     ProfilePageNormalUser.this.startActivity(fullScreenIntent); 
    } 
}; 
+1

,请告诉我们您的代码(: –

回答

1

里面的onClick(View v)方法,你可以调用v.getId() - 这将返回你的View的ID被点击。希望这可以帮助。

+0

感谢它的工作:) – ekjyot

+0

@ekjyout,欢迎你! – Egor

1

尝试了这一点:

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

    int index = 0; 
    for (int i = 0; i < image.length; i++) 
    { 
     if (image[i].getId() == v.getId()) 
     { 
      index = i; 
      break; 
     } 
    } 

    Toast.makeText(this, "Image clicked index => "+index, Toast.LENGTH_SHORT).show(); 
}