每次启动应用程序时,它都会崩溃,Logcat会这样说:
原因:java.lang.IllegalArgumentException:ID未引用此活动内的视图
所以我认为这是说找不到ID,但这是彼此对应的Java文件和XML文件。 Java:
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/nav_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_nav_menu" />
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:layout_constraintBottom_toTopOf="@id/nav_view"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.285"
app:navGraph="@navigation/mobile_navigation" />
XML:
class A:
pass
class B:
pass
class Z(object):
pass
if condition == a:
z = Z(A)
elif condition == b:
z = Z(B)
Logcat说失败,因为Java文件ID未引用此活动内的视图。但是我清楚地输入了ID:nav_host_fragment。 我不知道出了什么问题,当我进入Android Studio时,它没有报告任何错误。请帮忙。
答案 0 :(得分:2)
SDL_RWops
依赖于Navigation.findNavController
,该功能仅在您致电findViewById()
之后才能生效-也就是说,实际上是将视图添加到活动中。
答案 1 :(得分:1)
使用适当的控制器来避免 ID 不引用此 Activity 或片段内的视图?
如果您使用的是 Java
在活动中使用
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment)
在片段中使用
NavController navController = NavHostFragment.findNavController(this)
// or
NavHostFragment.findNavController(view)
如果您使用的是 kotlin
在活动中使用
val navController = findNavController(R.id.nav_host_fragment)
在片段中使用
val navController = findNavController()
答案 2 :(得分:0)
万一有人遇到我遇到的问题。我试图访问导航中的嵌套资源。
代替
val navController = findNavController(R.id.nav_print)
更新到
val navController = findNavController(R.id.nav_host_fragment_content_main)
navController.navigate(R.id.nav_print)