在 Android 中以程式碼動態新增控件(例如 ImageView)後,若要在點擊事件中知道是哪個控件被觸發,可以透過 setId() 指定 ID,並搭配 findViewById() 或 Tag 機制來辨識。
ImageView imgApple2 = new ImageView(this);
imgApple2.setImageResource(R.drawable.app);
imgApple2.setId(110); // API 17 以下建議使用靜態 ID
imgApple2.setOnClickListener(this);
RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp1.leftMargin = 30;
lp1.topMargin = 100;
mainLayout.addView(imgApple2, lp1);
public void onClick(View v) {
if (v.getId() == 110) {
// 處理 imgApple2 點擊
}
}