将数据从Tablayout Fragment发送到其他Fragment

时间:2016-05-11 10:00:10

标签: java android json android-fragments

我在MainActivity中有一个ViewPagerTablayout,在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。

0 个答案:

没有答案