当使用纯代码写控件时需要使用代码的方式生成id
private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1);
/*** 当API最小版本小于17时使用当前方法生成ID* 当API版本大于17时使用 View.generateViewId()方法生成ID* @return*/
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;}}
}