(Android)API Level 17未満で動的にIDを設定する(Java)

タイトルの通りの必要に迫られたので、ググってみたら、generateViewID()メソッドが出てきた。
後々も使いそうなのでメモ。

import java.util.concurrent.atomic.AtomicInteger;

//http://tools.oesf.biz/android-4.3.0_r2.2/xref/frameworks/base/core/java/android/view/View.java#sNextGeneratedId
//のまんま

public class IdGenerater {
    private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1);

    public static int GenerateID(){
        while(true) {
	    final int result = sNextGeneratedId.get();
	        int newValue = result + 1;
		if (newValue > 0x00FFFFFF) newValue = 1;
		    if (sNextGeneratedId.compareAndSet(result, newValue)) {
			return result;
		    }
		}
	}
}