我对我的preferences.xml文件进行了一些编辑,没有在Eclipse中生成任何语法标志,现在当我尝试给我的PreferencesActivity充气时,我遇到了以下奇怪的错误:
E / AndroidRuntime(3480):java.lang.RuntimeException:无法启动活动Co mponentInfo {com.shipmate / com.shipmate.PreferencesActivity}:java.lang.IllegalArg umentException:无法将PreferenceCategory直接添加到PreferenceCategory我总是在其他PreferenceCategory中有PreferenceCategory,所以我不认为这是问题所在。这是什么意思,它认为我正在“添加”一个PreferenceCategory到另一个? “添加”在XML中意味着什么? IllegalArgument如何与此添加相关?关于如何解决这个问题的任何想法?
答案 0 :(得分:2)
我总是有PreferenceCategory 在其他PreferenceCategory里面,所以我 不要以为那就是问题。
通过阅读Android源代码,PreferenceCategory
不能成为PreferenceCategory
的直接子项。此外,您永远不应该需要它,因为它没有视觉上的好处 - 让PreferenceCategory
元素在XML中彼此对等,而不是嵌套。
呃,这看起来很不言自明。您有一个它认为我是什么意思 “添加”一个PreferenceCategory 另一?
PreferenceCategory
,并且您正在尝试将另一个PreferenceCategory
放入其中。无论是在代码中还是通过通货膨胀,都可以通过addPreference()
上的PreferenceGroup
方法完成此操作。然后调用onPrepareAddPreference()
PreferenceCategory
,RuntimeException
执行类别类别检查并抛出异常。
IllegalArgument如何关联 这个添加?
在这种情况下,Android开发人员选择使用DivideByZeroException
的特殊风格。例如,他们本可以选择{{1}},但这本来就很奇怪。