我有一个题目里的问题。我的应用程序从片段a导航到片段b。当我想导航到c片段时,它会崩溃。
有一个函数可以导航到其他片段
public void onClick(View v) {
switch (v.getId()) {
case R.id.details_start_btn:
DetailsFragmentDirections.ActionDetailsFragmentToQuizzFragment action = DetailsFragmentDirections.actionDetailsFragmentToQuizzFragment();
action.setQuizId(quizId);
action.setTotalQuestions(totalQuestions);
navController.navigate(action);
break;
}
}
这是我的nav.xml
<?xml version="1.0" encoding="utf-8"?>
<navigation 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"
android:id="@+id/nav_graph"
app:startDestination="@id/startFragment">
<fragment
android:id="@+id/startFragment"
android:name="myapp.quizz.StartFragment"
android:label="fragment_start"
tools:layout="@layout/fragment_start" >
<action
android:id="@+id/action_startFragment_to_listFragment"
app:destination="@id/listFragment"
app:popUpToInclusive="true"
app:popUpTo="@id/startFragment"
app:enterAnim="@anim/fade_in"
app:exitAnim="@anim/fade_out" />
</fragment>
<fragment
android:id="@+id/listFragment"
android:name="myapp.quizz.ListFragment"
android:label="fragment_list"
tools:layout="@layout/fragment_list" >
<action
android:id="@+id/action_listFragment_to_detailsFragment"
app:destination="@id/detailsFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"
/>
</fragment>
<fragment
android:id="@+id/detailsFragment"
android:name="myapp.quizz.DetailsFragment"
android:label="fragment_details"
tools:layout="@layout/fragment_details" >
<action
android:id="@+id/action_detailsFragment_to_quizzFragment"
app:destination="@id/quizzFragment"
app:enterAnim="@anim/slide_up"
app:exitAnim="@anim/fade_out"
app:popEnterAnim="@anim/fade_in"
app:popExitAnim="@anim/slide_down" />
<argument
android:name="position"
app:argType="integer"
android:defaultValue="0" />
</fragment>
<fragment
android:id="@+id/quizzFragment"
android:name="myapp.quizz.QuizzFragment"
android:label="fragment_quizz"
tools:layout="@layout/fragment_quizz" >
<action
android:id="@+id/action_quizzFragment_to_resultFragment"
app:destination="@id/resultFragment" />
<argument
android:name="position"
app:argType="integer"
android:defaultValue="0" />
<argument
android:name="quizId"
app:argType="string"
android:defaultValue="null" />
<argument
android:name="totalQuestions"
app:argType="long"
android:defaultValue="0L" />
</fragment>
<fragment
android:id="@+id/resultFragment"
android:name="norbertprosniak.quizz.ResultFragment"
android:label="fragment_result"
tools:layout="@layout/fragment_result" />
</navigation>
我在网上发现我应该加上:
if (it.findNavController().currentDestination?.id == R.id.fragment_B) {
it.findNavController().navigate(R.id.fragment_A)}
但它会在“it”和“currentdestination?.id”中出错,并在kotlin中出现错误。
我从很长一段时间都在努力解决这个问题,有人遇到过这样的问题吗?
p、 我在用喷气背包导航。
暂无答案!
目前还没有任何答案,快来回答吧!