从自定义视图解析Alias Resource的最佳方法是什么?
资源
<array name="alias">@array/resource</array>
<array name="resource" >
<item>@drawable/image1</item>
<item>@drawable/image2</item>
</array>
将别名资源传递到自定义视图
<dev.packge.CustomView
xmlns:toolbox="http://schemas.android.com/apk/res-auto"
toolbox:drawables="@array/alias" />
初始化自定义视图
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomView, defStyleAttr, defStyleRes);
int drawables = a.getResourceId(R.styleable.CustomView_drawables, -1);
TypedArray resultTypedArray = getResources().obtainTypedArray(drawables);
将别名资源传递到自定义视图
CustomView c = (CustomView) new CustomView(getActivity());
c.setDrawables(R.array.alias);
c.Initialize();
ViewGroup.AddView(c);
初始化自定义视图
public void Initialize(){
TypedArray resultTypedArray = getResources().obtainTypedArray(mDrawables);
在两种形式(来自XML或来自Code)中,传递别名资源时resultTypedArray为空。但是这个代码在直接传递@ array / resource或R.array.resource时会起作用。
答案 0 :(得分:0)
我想我找到了答案...... array aliasing isn't support
注意:并非所有资源都提供了一种机制,您可以通过该机制为其他资源创建别名。特别是,xml /目录中的动画,菜单,原始和其他未指定的资源不提供此功能。