我正在嘗試通過使用 java 使用 android x 的新導(dǎo)航功能,我面臨以下問題我正在使用 Safe Args 將數(shù)據(jù)從一個(gè)目的地傳遞到另一個(gè)目的地,但我的捆綁包始終為空。我嘗試了很多選擇。在沒有 Safe Args 的情況下嘗試參數(shù)傳遞,即使使用 Safe Args 我也收到錯(cuò)誤// 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)驗(yàn) 獲得超10個(gè)贊
您不應(yīng)該使用savedInstanceState
to retrieve safe args。代替
String name = NameFragmentArgs.fromBundle(savedInstanceState).getNameArgument();
使用
String name = NameFragmentArgs.fromBundle(getArguments).getNameArgument();
另外,請(qǐng)注意,android:defaultValue="none"
字面意思是 String with value "none"
。
添加回答
舉報(bào)
0/150
提交
取消