当您想要访问某个layout.xml
文件中的自定义视图时,您有两个选择:
<package.name.MyView android:layout_width= ... />
<view class="package.name.OuterClass$MyView" android:layout_width= ... />
现在我想在<PreferenceScreen>
内做同样的事情。第一种方式效果很好,但我想将所有自定义Preference
类放在我的PreferenceActivity。我尝试<Preference class="package.name.OuterClass$MyPreference" ... />
(也使用'。'代替'$')以及<package.name.OuterClass.MyPreference ... />
,但都失败了。
有没有人有想法?
答案 0 :(得分:2)
在处理Views
充气时,LayoutInflater
会查找“视图” - &gt; “阶级”案例:
View createViewFromTag(View parent, String name, AttributeSet attrs) {
if (name.equals("view")) {
name = attrs.getAttributeValue(null, "class");
} ...
偏好PreferenceInflater
没有,所以这是针对“类”的情况。
它在createItem()
方法中使用反射,这可能就是为什么第一种情况适合你。