作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当你想访问一些自定义 View 时 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 ... />
,但都失败了。
有没有人有想法?
最佳答案
当处理 Views
膨胀时,LayoutInflater
寻找“ View ”->“类”的情况:
View createViewFromTag(View parent, String name, AttributeSet attrs) {
if (name.equals("view")) {
name = attrs.getAttributeValue(null, "class");
} ...
Preference 的 PreferenceInflater
没有,所以这是针对“类”的情况。
它在其 createItem()
方法中使用了反射,这可能就是第一种情况适合您的原因。
关于android - 在xml文件中实例化一个内部类(Preference),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7249028/
我是一名优秀的程序员,十分优秀!