标签:android style java 文件 for ar 代码 amp
View以及所有控件是如何得知我们在布局设置的控件ID的.
【Attrs.xml文件】
# attrs.xml 文件. <declare-styleable name="View"> <!-- reference 代表某一个资源文件!! --> <attr name="id" format="reference" /> ... ...(N多信息哈,自己看代码) </declare-styleable>
【View的初始化】
public static final int NO_ID = -1;
... ...
@ViewDebug.ExportedProperty(resolveId = true) // (注解) android-19/android/View/ViewDebug.java
int mID = NO_ID; // 保存控件ID,默认值-1.
... ...
public View(Context context, AttributeSet attrs, int defStyleAttr) {
this(context);
// 获取attrs.xml属性文件中的View.
TypedArray a = context.obtainStyledAttributes(
attrs, com.android.internal.R.styleable.View, defStyleAttr, 0);
... ...
... ...(N多代码,省略!!)
for (int i = 0; i < N; i++) {
int attr = a.getIndex(i);
switch (attr) {
... ...(N多代码,省略!!)
case com.android.internal.R.styleable.View_id: // 控件ID,获取View中的字段id.
mID = a.getResourceId(attr, NO_ID);
break;
【设置控件ID】
// 设置控件ID.
public void setId(int id) {
mID = id;
if (mID == View.NO_ID && mLabelForId != View.NO_ID) {
mID = generateViewId();
}
}
【获取控件ID】
// 获取控件ID.
@ViewDebug.CapturedViewProperty
public int getId() {
return mID;
}
fff
fff
Android-Widget源码分析,布布扣,bubuko.com
标签:android style java 文件 for ar 代码 amp
原文地址:http://my.oschina.net/hailongqiu/blog/301725