使用相同名称引用的NavigationComponent和SafeArgs从Activity发送参数到Fragment.



我在这里有一个案例,我必须从一个活动打开一个片段,我有时这样做,但这里的问题是,我想打开Fragment有一个参数与它。

<fragment
android:id="@+id/productDetailsFragment"
android:name="com.a.ry.ui.product.ProductDetailsFragment"
android:label="fragment_product_details2"
tools:layout="@layout/fragment_product_details" >
<argument
android:name="productId"
app:argType="integer" />
</fragment>

我所知道的是,我可以打开一个片段(从活动),并传递它的参数像这样:

val bundle = Bundle()
bundle.putInt("productId", productIdValue)
navController.navigate(R.id.productDetailsFragment, bundle)

问题在这里"productId">如果另一个开发人员更改了navigation。xml文件的名称那会怎样呢?这根本不是最佳实践

我想使用与实参名称相同的引用

或者是否有其他解决方案?

您应该在string.xml中定义它,并在XML和代码中使用。

android:name="@string/VAR"
getString (R.string.VAR);

最新更新