2

我需要知道哪个图像在哪个单元格中,所以我只尝试使用.setId()and .getId()。但如果有其他方法可以做到这一点,请告诉我。

单击按钮时会添加图像。我没有显示它们出现的位置,但这是我的问题,我正在尝试为我能够添加的每个图像添加一个 Id。因此,当我将它们放在 GridView 中并单击其中一个时,如果它Id是正确的,我可以执行其他操作,例如if (Id == 1) open... else if (id == 2) open other thing. 但我无法Id将 保存到图像(或保存到该图像ImageCell)。

我遇到的问题示例:如果我添加了具有 Id1 的 image1,然后添加了具有 Id2 的 image2,则 image1 Id 将更改为最后添加的图像(在本例中为 image2 Id)。我已经尝试了很多不同的方法来设置 ID,但我仍然得到第一个图像 ID 中的最后一个图像 ID。

我正在使用 Toast 来显示图像丢弃的 Id。这是 ImageCell 代码。

public void onDrop(DragSource source, int x, int y, int xOffset, int yOffset,
    DragView dragView, Object dragInfo)
{
mEmpty = false;

ImageView sourceView = (ImageView) source;
sourceView.setId(DragActivity.m);
Drawable d = sourceView.getDrawable ();
this.setId(sourceView.getId());
if (d != null) {
   this.setImageDrawable (d);
   this.setId(sourceView.getId());
   prueba = this.getId();
}
toast ("" + prueba);
}

DragActivity.m 只是一个用来改变图片的变量。

public void addNewImageToScreen() {
    int resourceId = R.drawable.hello;

    m = mImageCount % 3;
    if (m == 1) {
        resourceId = R.drawable.photo1;
    } else if (m == 2) {
        resourceId = R.drawable.photo2;
    }
    addNewImageToScreen(resourceId);
}

有人知道我在做什么错吗?谢谢

4

1 回答 1

1

我认为您正在尝试交换图像,在这种情况下您可以ImageView通过这样的标签唯一标识:

ImageView imageView = new ImageView(_context);
imageView.setTag(1);

然后在GridView's / ImageView's click 上检查它的标签,如下所示:

gridview.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {

        Tag = (Integer) arg1.getTag();

    }
}
于 2012-05-31T05:40:01.297 回答