下面你可以看到我的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);
}