我正在尝试通过使用 java 使用 android x 的新导航功能,我面临以下问题我正在使用 Safe Args 将数据从一个目的地传递到另一个目的地,但我的捆绑包始终为空。我尝试了很多选择。在没有 Safe Args 的情况下尝试参数传递,即使使用 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 回答

不负相思意
TA贡献1777条经验 获得超10个赞
您不应该使用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
提交
取消