Как передать данные из упражнения во фрагмент в android с помощью кнопки меню? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть следующие действия:

  1. LoginActivity

  2. MainActivity

  3. ProfileActivity

MainActivity содержит 4 фрагмента: PersonalFragment, PasswordFragment, SettingsFragment и FacilityFragment.

В PersonalFragment имеется 4 меню кнопок, одно из которых направлено на ProfileActivity.

ProfileActivity содержит 3 фрагмента: ProfileDetailFragment, FamilyFragment и EducationFragment.

Вот процесс моих приложений:

, когда я запустил LoginActivity и успешно вошел в систему, сервер отправил мне токен на Доступ к данным из веб-службы. Я уже получил токен. Затем я хочу получить все данные, которые я хочу получить из API, и отобразить их в ProfileDetailFragment. Для этого процесса мне нужно нажать на PersonalFragment в MainActivity, затем он откроет ProfileActivity, который сначала отобразит ProfileDetailFragment.

Что я пробовал:

  1. Передать токен от LoginActivity до MainActivity и отображать его с помощью Toast.makeText. Это успешно

  2. Передать результат токена, который я сохранил в новой переменной в MainActivity, например:

Bundle bundle = new Bundle();
bundle.putString("token", token);
ProfileDetailFragment fragobj = new Fragmentclass();
fragobj.setArguments(bundle);

и в ProfileDetailFragment:

String strtext = getArguments().getString("token");  

Но все равно верните ноль.

Я также пытался передать его шаг за шагом, как от LoginActivity, до MainActivity, PersonalFragment, ProfileActivity и, наконец, ProfileDetailFragment.

Есть ли какое-то решение для меня :(. К вашему сведению: I ' Прочитал предыдущие вопросы и документацию, но все равно возвращает ноль. Спасибо

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020
  • Для вещей, которые вы хотите сохранить в кеше, легко извлекать и для большинства ваших экранов вы можете использовать SharedPreferences

  • Для для однократной передачи данных между действиями я рекомендую использовать Intent

  • Для фрагментов, требующих данных из другого источника, вы можете использовать Bundle

0 голосов
/ 08 апреля 2020

Когда вы успешно войдете в приложение, в это время просто сохраните свой токен в SharedPreference, и вы сможете использовать один и тот же токен на всех экранах, поэтому нет необходимости вводить Intent. Пожалуйста, не забудьте очистить настройки перед выходом из формы приложения.

...