2012-11-11 161 views
0

我有一個線性佈局,每當用戶用相機拍照時,我都會用圖像填充。所以這些圖像視圖是動態添加的。動態添加哪一個被點擊的圖像?

對於這些圖像視圖中的每一個,我附加了一個OnClick事件以打開圖片並在另一個活動的另一個圖像視圖中顯示它。

每個imageview都有一個標籤,其中包含一個包含位圖信息的ArrayList項目。

onclick事件:

ImageView iv = new ImageView(this); 
LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,  LinearLayout.LayoutParams.WRAP_CONTENT); 
iv.setLayoutParams(params); 
iv.setImageBitmap(mBitmap); 
iv.setTag(pli); 
iv.setPadding(5, 5, 5, 5); 
lvp.setOnClickListener(new OnClickListener() { 

public void onClick(View arg0) { 
    PhotoList pli = (PhotoList) arg0.getTag(); 
    Intent i = new Intent(getBaseContext(), PhotoActivity.class); 
    i.putExtra("photo", pli.Photo); 
     i.putExtra("PhotoId", pli.id); 
    startActivity(i); 
} 
}); 

lvp.addView(iv); 

顯然與arg0.getTag行()不工作。 變量arg0是線性佈局,但我需要單擊imageview。

如何檢測在線性佈局中點擊了哪個圖像?

RG, 埃裏克

+0

「顯然與arg0.getTag行()不工作」。你怎麼知道的? – Simon

+0

標記爲空,可能是因爲那將是線性佈局的標記而不是imageview的標記。 – Eric

+0

您可以向我們提供您設置標籤的代碼嗎?這將是非常有意義的,因爲標籤爲空... – Warpzit

回答

1

您已設置OnClickListenerLinearLayout而不是ImageView

取而代之的是:

lvp.setOnClickListener(new OnClickListener() { 

    public void onClick(View arg0) { 
     ... 
    } 
}); 

使用此:

iv.setOnClickListener(new OnClickListener() { 

    public void onClick(View arg0) { 
     ... 
    } 
}); 
+0

謝謝,解決了! – Eric

+0

但現在我的活動沒有開始......沒有錯誤雖然... – Eric