В моем приложении я хочу использовать Fragment и Activity, и я хочу startActivity из этого 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)
}
Коды активности:
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 в тост.
Но в activity покажите мне нулевой !
Я использовал Котлин для языка.
Как я могу это исправить?
да дорогой, покажи мне ноль
вам нужно использовать такое намерение из фрагмента.
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)
Надеюсь, это сработает для вас.
ваша переменная response.user.wallet.credit в строке и попробуйте проверить, что она не равна нулю при передаче, чтобы быть уверенным :)
я проверяю это, покажите мне значение response.user.wallet.credit в журнале. но при отправке покажите мне значение null в действии!
при удалении ? из intent?.getStringExtra(USER_WALLET_PRICE).toString() покажите мне nullPointerError для intent !!!
ладно, попробуйте получить это значение в другой переменной, подобной этой val credit = response.user.wallet.credit, если это не нулевое значение, попробуйте проверить, что ваше дополнительное значение не нулевое Bundle extras = getIntent().getExtras(); String userName; if (extras != null) { userName = extras.getString("name"); // and get whatever type user account id is }
попробуй это может поможет
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? длинная? сериализуемый? и убедитесь, что вы получаете его того же типа
у вас есть
userWalletкак ноль?