在你的活動承載這些片段,定義一個變量,
public class HomeActivity{
public User mUser;
...
}
現在,在你的片段,當你得到迴應您的Api,在Activity中初始化變量User
,如下所示:
@Override
public void onClick(View view) {
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, getString(R.string.RESTAPI_URL), null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("Response: ",response.toString());
Gson gson = new Gson();
User user = gson.fromJson(String.valueOf(response),User.class);
// initialise User variable in Home Activity
((HomeActivity)getActivity()).mUser = user;
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("ErrorResponse: ",error.toString());
}
});
RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
requestQueue.add(jsonObjectRequest);
}
假設,你User
類實現Parcelable接口,如果沒有,那麼就使該類Parcelable。這與Java中的Serializable
的作用相同,但Parcelable
針對Android
進行了優化。
最後,當加載第二片段,簡單地傳遞用戶對象到第二片段如下:
SecondFragment secondFragment = new SecondFragment();
Bundle bundle = new Bundle();
bundle.putParcelable("ARG_USER", user);
secondFragment.setArguments(bundle);
//...code for loading second fragment
傳遞什麼樣的vlue你需要什麼? –
我需要傳遞一個對象 – Narendhran
序列化您的模型類,並將該對象與putSerializable函數捆綁在一起以使用Fragments傳遞對象。 – nnn