我正在嘗試通過使用 java 使用 android x 的新導(dǎo)航功能,我面臨以下問題我正在使用 Safe Args 將數(shù)據(jù)從一個目的地傳遞到另一個目的地,但我的捆綁包始終為空。我嘗試了很多選擇。在沒有 Safe Args 的情況下嘗試參數(shù)傳遞,即使使用 Safe Args 我也收到錯誤// Passing an argument in fragmentnameBtn.setOnClickListener(v -> { AccountFragmentDirections.ToNameFragment direction = AccountFragmentDirections.toNameFragment().setNameArgument(editName.getText().toString()); Navigation.findNavController(v).navigate(direction); });//Retriving the nameArgument from bundle String name = NameFragmentArgs.fromBundle(savedInstanceState).getNameArgument();<!-- Fragments in Navigation graph --> <fragment android:id="@+id/nameFragment" android:name="com.example.navigationdemo.NameFragment" android:label="fragment_name" tools:layout="@layout/fragment_name"> <argument android:name="nameArgument" app:argType="string" app:nullable="true" android:defaultValue="none" /> </fragment> <fragment android:id="@+id/accountFragment" android:name="com.example.navigationdemo.AccountFragment" android:label="fragment_account" tools:layout="@layout/fragment_account" > <action android:id="@+id/toNameFragment" app:destination="@id/nameFragment" /> </fragment>
1 回答

不負(fù)相思意
TA貢獻(xiàn)1777條經(jīng)驗 獲得超10個贊
您不應(yīng)該使用savedInstanceState
to retrieve safe args。代替
String name = NameFragmentArgs.fromBundle(savedInstanceState).getNameArgument();
使用
String name = NameFragmentArgs.fromBundle(getArguments).getNameArgument();
另外,請注意,android:defaultValue="none"
字面意思是 String with value "none"
。
添加回答
舉報
0/150
提交
取消