我正在使用下拉首选项,但每次尝试安装时应用程序都会崩溃。 entryValues和条目应该是什么?官方文档没有解释xml的用法。在api 25和21上进行了测试。
<androidx.preference.PreferenceCategory app:title="@string/Time">
<androidx.preference.DropDownPreference
android:key="dropdown"
android:title="@string/waitTime"
android:entryValues="@array/planets_array"
android:entries="@array/times"
app:useSimpleSummaryProvider="true"
/>
</androidx.preference.PreferenceCategory>
</androidx.preference.PreferenceScreen>
string.xml:
<resources>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
</string-array>
<integer-array name="times">
<item>5</item>
<item>10</item>
<item>15</item>
<item>20</item>
</integer-array>
</resources>
日志:
Process: com.example.detector, PID: 11439
android.view.InflateException: Binary XML file line #22: Error inflating class androidx.preference.DropDownPreference
...
androidx.preference.PreferenceFragmentCompat.setPreferencesFromResource(PreferenceFragmentCompat.java:377)
at com.example.breathdetector.ui.customization.CustomizationFragment.onCreatePreferences(CustomizationFragment.java:24)
androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1830)
...
Caused by: java.lang.reflect.InvocationTargetException
...androidx.preference.PreferenceFragmentCompat.setPreferencesFromResource(PreferenceFragmentCompat.java:377)
at com.example.breathdetector.ui.customization.CustomizationFragment.onCreatePreferences(CustomizationFragment.java:24)
at androidx.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:160)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:2586)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:838)
at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java:2100)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1874)
任何帮助将不胜感激。
答案 0 :(得分:0)
看看示例:
很难从stacktrace得知,但这可能是因为您使用的是整数数组-我认为DropDownPreference
仅适用于条目和条目值的字符串数组。
希望这会有所帮助!