首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 取得動態新增控件 ID 的方法

     編輯:程式設計綜合問答

在 Android 中以程式碼動態新增控件(例如 ImageView)後,若要在點擊事件中知道是哪個控件被觸發,可以透過 setId() 指定 ID,並搭配 findViewById() 或 Tag 機制來辨識。

設定與取得 ID

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 點擊
    }
}

更佳做法

  • API 17 以上可使用 View.generateViewId() 產生不重複的 ID。
  • 若不想管理 ID,可使用 setTag() 儲存自訂資料,在 onClick 中透過 getTag() 取得。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved