未设置Android导航java.language.IlLegalStateException片段类 [英] Android Navigation java.language.IllegalStateException fragment class was not set
本文介绍了未设置Android导航java.language.IlLegalStateException片段类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
SavedResultsFragment
Navigation Layout
当我单击任何项目时,它应该在ShowSavedResltsFragment
中显示该被点击项目的所有详细信息,但安装应用程序崩溃并引发IllegalStateException
,且未设置片段类。
The image showing navigation layout and code
The image showing code logic where trying to switch to ShowResultsFragment
from SavedResultFragment
SavedResultFragment
到ShowSavedResultsFragment
之间导航时,几乎只有一个问题。我试图搜索官方文档和堆栈溢出,但没有找到任何我面临的东西。官方文档提示navHostfragment
没有正确实现,这可能会触发上述异常,但我使用的是他们的官方文档,但我在这里所做的唯一一件事就是通过导航抽屉导航到Fragment
,然后从该片段尝试导航到另一个片段,这就是它中断的地方。
Image showing exception 编辑:NavHostFragment代码
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
</data>
<merge>
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/myNavHostFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:defaultNavHost="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/navigation" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/navVew"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_drawer_menu" />
</androidx.drawerlayout.widget.DrawerLayout>
</merge>
</layout>
推荐答案
导航图表中ShowSavedResultsFragment
的声明没有附加name
属性。
如果您查看SavedResultFragment
声明,您会注意到它有一个name
属性。
ShowSavedResultsFragment
声明添加name
属性。name
属性的值应该是ShowSavedResultsFragment
类的包名。(点)类的名称。类似于com.xxx.yyy.savedresult.ShowSavedResultsFragment
这篇关于未设置Android导航java.language.IlLegalStateException片段类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文