我对preferences.xml文件进行了一些编辑,但没有在Eclipse中生成任何语法标志的内容,现在,当我尝试将我的PreferencesActivity充气时,出现了以下奇怪的错误:
E / AndroidRuntime(3480):java.lang.RuntimeException:无法启动活动
mponentInfo {com.shipmate / com.shipmate.PreferencesActivity}:java.lang.IllegalArg
umentException:无法将PreferenceCategory直接添加到PreferenceCategory
我总是在其他PreferenceCategory的内部包含PreferenceCategory,所以我不认为这是问题所在。它认为我正在将一个“ PreferenceCategory”添加到另一个“ PreferenceCategory”是什么意思? XML中的“添加”是什么意思? IllegalArgument与该添加有何关系?关于如何解决此问题的任何想法?
最佳答案
我总是有PreferenceCategory的
在其他PreferenceCategory里面
不要以为那是问题。
根据我对Android源代码的阅读,PreferenceCategory
不能是PreferenceCategory
的直接子代。而且,您永远都不需要这样做,因为这样做没有视觉上的好处-将PreferenceCategory
元素在XML中彼此相对,而不是嵌套。
它以为我是什么意思
“添加”一个PreferenceCategory到
另一个?
嗯,这似乎很不言而喻。您有一个PreferenceCategory
,并且您正在尝试在其中放置另一个PreferenceCategory
。可以通过addPreference()
上的PreferenceGroup
方法完成此操作,无论是通过代码还是通过通货膨胀。依次调用onPrepareAddPreference()
,它在PreferenceCategory
中进行类别中的检查并引发异常。
以及IllegalArgument是如何关联的
除了这个?
在这种情况下,Android开发人员选择使用RuntimeException
的特殊风格。例如,他们本可以选择DivideByZeroException
,但这很奇怪。
关于android - 来自PreferenceActivity的奇怪异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3420139/