将MainActivity parsingJSON转换为Fragment

时间:2018-06-04 16:36:25

标签: java android

下面你可以看到我的MainActivity onCreate方法,其中我从url获取数据并将其打包到RecyclerView。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mRecyclerView = findViewById(R.id.recycler_view);
    mRecyclerView.setHasFixedSize(true);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

    mExampleList = new ArrayList<>();

    mRequestQueue = Volley.newRequestQueue(this);
    parseJSON();
}

对于MainActivity,它工作得很好,但现在我正在努力将此代码转换为片段。

    mRecyclerView = findViewById(R.id.recycler_view);
    mRecyclerView.setHasFixedSize(true);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

    mExampleList = new ArrayList<>();

    mRequestQueue = Volley.newRequestQueue(this);
    parseJSON();

这是我的片段代码

public class BrowseFragment extends Fragment {

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_browse,container,false);
}

}

这是我的parseJSON方法

    private void parseJSON(){
    String url = "https://api.imgflip.com/get_memes";

    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>(){
                @Override
                public void onResponse(JSONObject response){
                    try {
                        JSONObject jsonObject = response.getJSONObject("data");
                        JSONArray jsonArray = jsonObject.getJSONArray("memes");

                        for(int i = 0; i < jsonArray.length(); i++){
                            JSONObject hit = jsonArray.getJSONObject(i);

                            String memeName = hit.getString("name");
                            String imageUrl = hit.getString("url");

                            mExampleList.add(new ExampleItem(imageUrl,memeName));
                        }

                        mExampleAdapter = new ExampleAdapter(MainActivity.this,mExampleList);
                        mRecyclerView.setAdapter(mExampleAdapter);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error){
            error.printStackTrace();
        }
    });

    mRequestQueue.add(request);
}

0 个答案:

没有答案