在attrs.xml和themes.xml中的attr中获取布局集

时间:2013-02-22 02:08:41

标签: android android-resources

这是我的attr:

<attr name="taskTimePickerLayout" format="reference" />

以下是在themes.xml中设置的方式:

<item name="taskTimePickerLayout" type="reference">@layout/task_time_picker_holo</item>

我想使用attr中的布局来扩充布局,我该怎么做?我尝试使用R.attr.taskTimePickerLayout作为inflater的资源,但是抛出了ResourceNotFoundException。

1 个答案:

答案 0 :(得分:1)

将这段代码放入您的Activity(或片段)中:

TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(R.attr.taskTimePickerLayout, typedValue, true);
setContentView(typedValue.resourceId);

确保在执行此代码之前将主题应用于Activity。

此代码基本上做的是根据应用于当前Context的主题解析引用R.attr.taskTimePickerLayout。 typedValue.resourceId是已解析引用的值(在本例中为@ layout / task_time_picker_holo的布局ID)。 这也适用于所有其他参考(绘图,颜色等)