Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android動態setId,避免id重復

Android動態setId,避免id重復

編輯:關於Android編程

當一個布局中Add了兩個id相同的控件時,通過findVIewById會出現錯誤。


解決方法如下:

1.通過 View的

generateViewId()

方法獲取一個可用 id.在手動進行setId.

需要API LEVEL 17


API LEVEL 17以下可以直接使用該函數的代碼:

public static int generateViewId() {
    for (;;) {
        final int result = sNextGeneratedId.get();
        // aapt-generated IDs have the high byte nonzero; clamp to the range under that.
        int newValue = result + 1;
        if (newValue > 0x00FFFFFF) newValue = 1; // Roll over to 1, not 0.
        if (sNextGeneratedId.compareAndSet(result, newValue)) {
            return result;
        }
    }
}


2.通用方法:

samples/ApiDemos/src/com/example/android/apis/RadioGroup1.java

samples/ApiDemp/res/values/ids.xml

聲明一個 id item



java代碼中通過setId設置對應的name

newRadioButton.setId(R.id.snack);




  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved