3 回答

TA貢獻1827條經(jīng)驗 獲得超8個贊
使用這個可能對你有幫助。
private void getRecyclerView(){
Log.d(TAG, "getRecyclerView");
recyclerView = findViewById(R.id.recyclerView);
adapter = new RecyclerViewAdapter(mImageUrls, mTitle, this);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this,
LinearLayoutManager.VERTICAL, false));
recyclerView.setHasFixedSize(true);
}

TA貢獻1830條經(jīng)驗 獲得超9個贊
告訴我這是否有效:
JsonObjectRequest root = new JsonObjectRequest(Request.Method.GET, URL, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject feed = response.getJSONObject("feed");
JSONArray results = feed.getJSONArray("results");
//Log.d("FEED", String.valueOf(feed));w
for(int i = 0; i<results.length(); i++){
JSONObject resultsObj = results.getJSONObject(i);
Log.d(TAG, "inside" + String.valueOf(i));
mImageUrls.add(resultsObj.getString("artworkUrl100"));
mTitle.add(resultsObj.getString("name"));
}
getRecyclerView();
adapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
mRequestQueue.add(root);
}
private void getRecyclerView(){
Log.d(TAG, "getRecyclerView");
recyclerView = findViewById(R.id.recyclerView);
adapter = new RecyclerViewAdapter(mImageUrls, mTitle, this);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true); }
我所做的是移出getRecyclerView();循環(huán),因為您只需要調(diào)用一次,而不是每次要設(shè)置 recyclerview 時。

TA貢獻1784條經(jīng)驗 獲得超9個贊
每次使用一個值初始化適配器時。這就是列表包含一個值而其他值是空白的原因。您需要移至getRecyclerView();循環(huán)外。
看起來像這樣:
try {
JSONObject feed = response.getJSONObject("feed");
JSONArray results = feed.getJSONArray("results");
//Log.d("FEED", String.valueOf(feed));w
for(int i = 0; i<results.length(); i++){
JSONObject resultsObj = results.getJSONObject(i);
Log.d(TAG, "inside" + String.valueOf(i));
mImageUrls.add(resultsObj.getString("artworkUrl100"));
mTitle.add(resultsObj.getString("name"));
}
getRecyclerView();
// No need to notify the data set changed
// adapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
添加回答
舉報