Как отправить данные из фрагмента в Activity в Android

В моем приложении я хочу использовать 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 покажите мне нулевой !

Я использовал Котлин для языка.

Как я могу это исправить?

у вас есть userWallet как ноль?

Basi 08.05.2019 12:20

да дорогой, покажи мне ноль

KokoBand 08.05.2019 12:21
0
2
4 810
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

вам нужно использовать такое намерение из фрагмента.

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 в строке и попробуйте проверить, что она не равна нулю при передаче, чтобы быть уверенным :)

Jainil Patel 08.05.2019 12:26

я проверяю это, покажите мне значение response.user.wallet.credit в журнале. но при отправке покажите мне значение null в действии!

KokoBand 08.05.2019 12:29

при удалении ? из intent?.getStringExtra(USER_WALLET_PRICE).toString() покажите мне nullPointerError для intent !!!

KokoBand 08.05.2019 12:30

ладно, попробуйте получить это значение в другой переменной, подобной этой 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 }

Jainil Patel 08.05.2019 12:36

попробуй это может поможет

    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? длинная? сериализуемый? и убедитесь, что вы получаете его того же типа

Другие вопросы по теме

Похожие вопросы

CollectionGroup() не является общедоступным. Невозможно получить доступ из внешнего пакета
Макет внутри другого макета недоступен из действия
Firebase получает все дочерние значения и сохраняет их в массиве
Как установить ограничение ширины макета, которое внутри панели инструментов должно соответствовать родительскому?
Как проверить дату окончания, которая меньше даты начала в Android?
Android ReCaptcha: может ли создание экземпляра (синхронного!) объекта-исполнителя в моем действии привести к сбою его потока (и пользовательского интерфейса)?
Это приложение было удалено из Google Play за нарушение правил программы для разработчиков Google Play. Отклонение приложения Android
Каков предел максимальной длины одной строки в файлах XML?
Показать/скрыть представления в RecyclerView для любого события на панели инструментов
Переадресация звонков не работает с использованием кода ниже