将图像ID设置为使用拖放添加的图像

时间:2012-05-17 04:14:45

标签: android image gridview drag-and-drop getter-setter

我需要知道哪个图片位于哪个单元格中,所以我只尝试使用.setId().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中删除了。

我正在使用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);
}

任何人都知道我做错了什么?感谢

1 个答案:

答案 0 :(得分:1)

我认为您正在尝试交换图片,在这种情况下,您可以通过标记识别ImageView,如下所示:

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

然后在GridView / ImageView上点击检查其标记如下:

gridview.setOnItemClickListener(new OnItemClickListener() {

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

        Tag = (Integer) arg1.getTag();

    }
}