为了账号安全,请及时绑定邮箱和手机立即绑定

Bundle 通过使用安全的 Args 导航变得空

Bundle 通过使用安全的 Args 导航变得空

Smart猫小萌 2023-02-16 16:50:12
我正在尝试通过使用 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个赞

您不应该使用savedInstanceStateto retrieve safe args。代替

String name  = NameFragmentArgs.fromBundle(savedInstanceState).getNameArgument();

使用

String name  = NameFragmentArgs.fromBundle(getArguments).getNameArgument();

另外,请注意,android:defaultValue="none"字面意思是 String with value "none"


查看完整回答
反对 回复 2023-02-16
  • 1 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号