2017-08-07 31 views
0

我需要傳遞用戶名&從我的LoginActivity返回json響應(logcat成功)的標記,以便我可以將它們設置爲新的http請求的參數。將JSON響應數據從活動傳遞到android中的片段

我該怎麼辦呢?

LoginActivity

CarListFragment

順便說一句,如果可能的話你能還教我如何使用foreach循環或東西顯示所有的車!

+0

使用SharedPreferences存儲至少用戶名。永遠不要以明文存儲密碼 –

回答

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",""); 

注:優先存儲敏感數據是有風險的。所以嘗試加密您的令牌。並在需要時進行解密。

+0

Vinayak,我不知道替換()方法中的容器,我必須放在那裏? –

+0

把你的framelayout id放在那個地方。它在你的xml文件 –

+0

我明白了。我需要嘗試! –