實踐
頁面上有很多結(jié)構(gòu)相同的單元形娇,只是填充的內(nèi)容不一樣版姑,我想通過遍歷的方法對每一個單元進行操作豁生。如下操作就可以實現(xiàn)了峻呛。是不是很省心骗卜。關(guān)鍵點TypedArray洒忧。
TypedArray item = getContext().getResources().obtainTypedArray(R.array.guide_template_item);
for (int i = 0; i < Math.min(guideUnits.size(), MAX_COUNT); i++) {
GuideItem guideItem = (GuideItem) findViewById(item.getResourceId(i, 0));
......
}
// 用完之后受神,記得回收
item.recycle();
在arrays中配置如下:
<array name="guide_template_item">
<item>@id/guide1</item>
<item>@id/guide2</item>
<item>@id/guide3</item>
</array>
TypedArray
Container for an array of values that were retrieved with
{@link Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int)}
or {@link Resources#obtainAttributes}. Be
sure to call {@link #recycle} when done with them.
The indices used to retrieve values from this structure correspond to
the positions of the attributes given to obtainStyledAttributes.
TypedArray是一個容器俺猿,這個容器存放的是array的值(看名字也知道了)碘举,存放在容器中的這些值使用Resources.Theme下的obtainStyledAttributes和Resources下的obtainAttributes來檢索忘瓦。當(dāng)完成檢索的時候,請調(diào)用recycle方法引颈。indices(index復(fù)數(shù))用來從對應(yīng)的容器中檢查對應(yīng)屬性的值耕皮。所有位置的值可以通過obtainStyledAttributes方法獲取到境蜕。(obtainStyledAttributes返回TypedArray)