ArrayListからループを介してデータを取得しようとしていますが、リストが空であり、が0でも、adapter.getItemCount()
も0を返しますが、少なくとも2つのまたは3のデータを持っており、それが完全にRecyclerViewに置いていますが、それでもarrayList.size()
が0ArrayList.size 0を返しますが、arryListは空ではありません
arrayList = Backgroundtask.getList();
adapter = new RecycleAdapter(arrayList,getContext());
ItemRecyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(getActivity());
ItemRecyclerView.setLayoutManager(layoutManager);
ItemRecyclerView.setAdapter(adapter);
for(int i = 0; i < arrayList.size(); i++){
int quantity = arrayList.get(i).getQuantity();
Total += quantity ;
}
Log.d("ArrayList Size " , String.valueOf(arrayList.size()));
Log.d("getItemCount Size " , String.valueOf(adapter.getItemCount()));
である、これは私のBackgroundTaskのです:
public ArrayList<DataProvider> getList(){
StringRequest stringRequest = new StringRequest(Request.Method.POST, jsonURL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray jsonArray = new JSONArray(response);
for(int i = 0; i < jsonArray.length(); i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
DataProvider dataProvider = new DataProvider(jsonObject.getString("Name"),
jsonObject.getDouble("quantity"));
arrayList.add(dataProvider);
}
UserFragment.adapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
}
}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError){
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> param = new HashMap<String,String>();
param.put("id",MainActivity.USER_ID.toString());
return param;
}
};
Singletone.getSingletone(context).addToRequest(stringRequest);
return arrayList;
}
あなたは 'BackgroundTask.getList()'メソッドのコードを更新することはできますか? –
'for(int i = 0; i
コードでは問題を認識するだけでは不十分です。上記のコードでは、配列リストは空になります。ファイル全体を共有してください。 –