我在MainActivity中有一个ViewPager
和Tablayout
,在Viewpager
里面我有一个4片段,在theese片段中我加载json并用数据填充recyclerview。所有片段加载相同的结构数据但具有不同的id。
现在在Fragment_Four
我有代码。
Fragment_four.java
public class Fragment_four extends Fragment {
private ArrayList<ModelDars> darsha = new ArrayList<ModelDars>();
private RecyclerView reyclerCharDab;
private AdapterRecyclerDars adapterRecyclerDars;
private String after_url;
private String id;
private String title;
private String poster;
private String visitcnt;
private String date;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_four, container, false);
//sendjsonRequest
sendJsonRequest();
//recyclerview init
reyclerCharDab = (RecyclerView) view.findViewById(R.id.recycler_frg_chaharom_dab);
reyclerCharDab.setHasFixedSize(true);
GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 3);
reyclerCharDab.setLayoutManager(gridLayoutManager);
reyclerCharDab.addOnScrollListener(new EndlessRecyclerViewScrollListener(gridLayoutManager) {
@Override
public void onLoadMore(int page, int totalItemsCount) {
loadMore();
Toast.makeText(getActivity(), "onload", Toast.LENGTH_SHORT).show();
}
});
adapterRecyclerDars = new AdapterRecyclerDars(darsha, getActivity());
reyclerCharDab.setAdapter(adapterRecyclerDars);
return view;
}
//setJsonRequest method
private void sendJsonRequest() {
String firstUrl = "URL";
darsha.clear();
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, firstUrl, (String) null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
parseJsonResponse(response);
adapterRecyclerDars.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getActivity(),"khata darim" ,Toast.LENGTH_SHORT).show();
}
});
AppController.getInstance().addToRequestQueue(request);
}
//parseJsonResponse Method
private void parseJsonResponse(JSONObject response) {
if (response != null) {
try {
after_url = response.getString("pagination");
JSONArray data = response.getJSONArray("data");
for (int i = 0; i < data.length(); i++) {
JSONObject currentData = data.getJSONObject(i);
ModelDars newModelDars = new ModelDars();
id = currentData.getString("id");
title = currentData.getString("title");
poster = currentData.getString("poster");
visitcnt = currentData.getString("visitcnt");
date = currentData.getString("date");
newModelDars.setDars_id(id);
newModelDars.setDars_name(title);
newModelDars.setDars_img(poster);
newModelDars.setDars_visitcnt(visitcnt);
newModelDars.setDars_date(date);
darsha.add(newModelDars);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.d("ResponseEmpty", "Response is empty after parsing");
}
}
//loadmore method triggerd when scroll
private void loadMore() {
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, after_url, (String) null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("app", after_url);
parseJsonResponse(response);
adapterRecyclerDars.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getActivity(),"khata darim" ,Toast.LENGTH_SHORT).show();
}
});
AppController.getInstance().addToRequestQueue(request);
}
}
在Json Response中我有一个{id,title,poster,visitcnt,date,cat_id,cat_name}
这是我的另一个片段。这个片段存在于DetailActivity
FragmentFilm .java
public class FragmentFilm extends Fragment {
public FragmentFilm() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_film, container, false);
}
}
现在我的问题是如何从json响应发送cat_id和id到FragmentFilm。