Передача данных ответа JSON из действия на фрагмент в Android

Мне нужно передать имя пользователя и токен, которые возвращаются из ответа json (успешный logcat) из моей учетной записи LoginActivity, чтобы я мог установить их в качестве параметров для нового http-запроса.

Как мне это сделать?

LoginActivity

CarListFragment

Кстати, если возможно, можете ли вы также научить меня, как я могу отображать все машины, используя цикл foreach или что-то еще!

1 ответ

Решение

Вы можете передать свой параметр как данные пакета во фрагмент.

CarFragment carfragment= new CarFragment();
 Bundle bundle=new Bundle();
    bundle.putString("username",username);
    bundle.putString("token",token);
   carfragment.setArguments(bundle);

getSupportFragmentManager().beginTransaction().replace(R.id.your_container,carFragment).commit();

вы можете получить эти данные из метода carfragment onCreate()

  Bundle bundle= getArguments();
    String username= bundle.getString("username");
    String token = bundle.getString("token");

Для каждого может быть закодировано как

for(Car car : carList){
// do your stuff using "car" variable
}

или же

вы можете использовать SharedPreference для хранения имени пользователя и токена

сохраните имя пользователя и токен

SharedPreferences preferences=getSharedPreferences("myPref",MODE_PRIVATE);
    SharedPreferences.Editor editor= preferences.edit();
    editor.putString("username",username);
    editor.putString("token",token);
    editor.apply();

в вашем carFragment используйте этот код для извлечения данных

 SharedPreferences preferences=getActivity().getSharedPreferences("myPref", Context.MODE_PRIVATE);
    String username=preferences.getString("username","");
    String token = preferences.getString("token","");

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

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