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

时间:2019-05-08 10:04:32

标签: android android-fragments android-intent kotlin bundle

在我的应用程序中,我想使用Fragment中的ActivitystartActivity,并且我想从fragment中使用startActivity,并且我应该使用activity发送数据
我编写了以下代码,但是在运行应用程序时,在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) } 中显示 null
片段代码:

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的按钮时,我会在{strong> toast 中显示activity
但是请向@Table(uniqueConstraints=@UniqueConstraint(columnNames = {"A", "B"})) 显示

我用科特林语言。

我该如何解决?

3 个答案:

答案 0 :(得分:1)

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

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)

希望这对您有用。

答案 1 :(得分:1)

此行:

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

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

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

USER_WALLET_PRICE键找不到多余的字符串。检查int是什么类型的response.user.wallet.credit?长?可序列化?并确保您使用相同的类型

答案 2 :(得分:0)

尝试一下,可能有帮助

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