我需要知道哪个图片位于哪个单元格中,所以我只尝试使用.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);
}
任何人都知道我做错了什么?感谢
答案 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();
}
}