Я получаю эту ошибку при раздувании макета для PreferenceFragment
, но я не могу понять причину, потому что я не могу найти любой список в макете.Содержимое имеет представление с атрибутом id 'android.R.id.list', которое не является классом ListView
Здесь (тривиальное) расположение:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.myPath.SettingsFragment">
</FrameLayout>
Вот код, который поднимет исключение Runtime:
public class SettingsFragment extends PreferenceFragment {
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_settings, container, false);
}
}
Вот полный стек исключение:
Unable to start activity ComponentInfo{com.myPath.SettingsActivity}:
java.lang.RuntimeException: Content has view with id attribute 'android.R.id.list'
that is not a ListView class
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
at android.app.ActivityThread.access$900(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.RuntimeException: Content has view with id attribute 'android.R.id.list' that is not a ListView class
at android.preference.PreferenceFragment.ensureList(PreferenceFragment.java:397)
at android.preference.PreferenceFragment.getListView(PreferenceFragment.java:363)
at android.preference.PreferenceFragment.bindPreferences(PreferenceFragment.java:345)
at android.preference.PreferenceFragment.onActivityCreated(PreferenceFragment.java:185)
at android.app.Fragment.performActivityCreated(Fragment.java:2122)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1082)
at android.app.BackStackRecord.run(BackStackRecord.java:833)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
at android.app.Activity.performStart(Activity.java:6257)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2621)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
at android.app.ActivityThread.access$900(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
Просьба опубликовать всю трассировку стека. – CommonsWare
@CommonsWare, опубликовано. Может быть, может помочь и код/макет родительской активности? – perissf
Почему вы используете «PreferenceFragment» здесь, в первую очередь? Пункт «PreferenceFragment» заключается в отображении списка предпочтений, и вы, похоже, активно пытаетесь помешать ему отображать список предпочтений, заменив «ListView» на «FrameLayout». – CommonsWare