如何将数据从片段发送到 Android 中的 Activity

How to send data from fragment to Activity in Android

在我的应用程序中,我想使用 FragmentActivity,我想从这个 fragment 中获取 startActivity,我应该使用 startActivity[= 发送数据39=] 我写了下面的代码,但是当 运行 应用程序在 activity!
中显示 null 片段代码:

homeDashboard_giftInfoLayout.setOnClickListener {
    val intent = Intent(requireContext(), DashboardChargeWalletActivity::class.java)
    intent.putExtra(USER_WALLET_PRICE, response.user.wallet.credit)
    intent.putExtra(USER_CHARGED_VALUE, 0)
    startActivity(intent)
}

Activity 代码:

userWallet = intent?.getStringExtra(USER_WALLET_PRICE).toString()
userWallet.let {
    //User wallet
    dashboardChargeWallet_userWallet.text =
        "${getString(R.string.walletInventory)}: $userWallet ${getString(R.string.toman)}"
}

当单击 startActivity 的按钮时,我将此 response.user.wallet.credit 显示到 toast.
但是进入 activity 告诉我 null !

我使用 Kotlin 作为语言。

我该如何解决?

您需要从片段中使用这样的意图。

homeDashboard_giftInfoLayout.setOnClickListener {
 val intent = Intent(activity, DashboardChargeWalletActivity::class.java)
 intent.putExtra(USER_WALLET_PRICE, response.user.wallet.credit)
 intent.putExtra(USER_CHARGED_VALUE, 0)
 startActivity(intent);
}

你也可以使用 requireActivity

val intent=Intent(requireActivity(),DashboardChargeWalletActivity::class.java)

希望这对您有用。

试试这个,可能会有帮助

    Intent intent = new Intent(getActivity(), LoadActivity.class);
    intent.putExtra(USER_WALLET_PRICE, response.user.wallet.credit)
    intent.putExtra(USER_CHARGED_VALUE, 0)
    startActivity(intent);

这一行:

intent.putExtra(USER_WALLET_PRICE, response.user.wallet.credit)

我怀疑 response.user.wallet.credit 不是字符串。所以下面一行:

userWallet = intent?.getStringExtra(USER_WALLET_PRICE).toString()

找不到带有 USER_WALLET_PRICE 键的额外字符串。查看 response.user.wallet.credit 是什么类型,int?长的?可序列化?并确保你通过相同的类型获得它