如何通过派生类访问Android内部样式属性?

时间:2014-10-16 23:56:46

标签: android attr

我有子类首选项,并在attrs.xml中创建了自定义样式,如下所示:

<declare-styleable name="MyPreference">
    <attr name="myAttribute" format="reference" />
</declare-styleable>

我可以在xml中声明我的Preference,如下所示:

<com.my.project.MyPreference
    android:title="myTitle"
    namespace:myAttribute="@array/sleep_time_values" />

我可以正常访问自定义属性:

TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyPreference, 0, 0);
thing = a.getText(R.styleable.MyPreference_myAttribute);

我的问题是:如何访问(在代码中)上面xml定义中指定的内部android:title属性?

1 个答案:

答案 0 :(得分:0)

框架样式化数组不是公共的(或稳定的),但您可以使用相同的方法获取单个公共属性以获取样式属性。这应仅用于获取单个属性,因为资源框架期望属性数组按特定顺序。

TypedArray a = context.obtainStyledAttributes(
    attrs, new int[] { android.R.attr.title }, 0, 0);
String title = a.getText(0);