将JSON响应数据从活动传递到android中的片段

时间:2017-08-07 06:37:57

标签: android json request android-volley

我需要传递用户名&从我的LoginActivity返回json响应(logcat成功)的令牌,以便我可以将它们设置为新http请求的参数。

我该怎么办?

LoginActivity

CarListFragment

顺便说一句,如果可能的话,你还可以教我如何使用foreach循环或其他东西显示所有汽车!

1 个答案:

答案 0 :(得分: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","");

注意:首选存储敏感数据存在风险。因此,请尝试加密令牌。并在你需要时解密..