2012-05-17 89 views
2

我需要知道哪個圖像位於哪個單元格中,所以我只嘗試使用.setId().getId()。但是,如果還有其他方法可以做到這一點,請讓我知道。將圖像ID設置爲使用拖放添加的圖像

當我點擊一個按鈕時添加圖像。我沒有顯示它們出現的位置,但這是我的問題,我正在嘗試爲每個可以添加的圖像添加一個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'S/ImageView的點擊查看它的標籤是這樣的:

gridview.setOnItemClickListener(new OnItemClickListener() { 

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

     Tag = (Integer) arg1.getTag(); 

    } 
} 
+0

我明白你的意思,但我想檢查他們是否連接。像這樣:如果imageCell0有你好,imageCell1有你好,然後改變這兩個圖像。 –

+0

在這種情況下檢查標籤並進行比較 – Prachi

+0

完美!正是我所需要的,經過幾天的思考和理解,我讓它成功運作。謝謝!! –