Загрузка данных JSON с нескольких страниц залпом
У меня проблема с моим кодом, не могли бы вы помочь?
У меня есть данные Json, представляющие собой список клиентов, мне нужно разобрать его, но есть 8949 страниц, но он показывает только первую страницу, EndlessScrollListener не помогает, он всегда показывает только первые 12 клиентов и не загружает следующую страницу все, что я пытаюсь Я использую пользовательский адаптер и AppController для этого проекта.
Вот код MainActivity.java. открытый класс MainActivity расширяет AppCompatActivity {
private static
String url = "https:my_url_page=1";
private ProgressDialog dialog;
private List<Item> array = new ArrayList<Item>();
private ListView listView;
private ItemAdapter adapter;
final String LOG_TAG = "myLogs";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list_item);
adapter = new ItemAdapter(this, array);
listView.setAdapter(adapter);
dialog = new ProgressDialog(this);
dialog.setMessage("Loading...");
dialog.show();
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
hideDialog();
try {
JSONObject data1 = new JSONObject(response);
JSONObject data = data1.getJSONObject("data");
JSONObject list = data.getJSONObject("list");
Iterator keys = list.keys();
while (keys.hasNext()) {
String currentDK = (String) keys.next();
JSONObject currentDV = list.getJSONObject(currentDK);
Item item = new Item();
item.setPman_id(currentDV.optString("man_id"));
item.setPprofile(currentDV.optString("pfl_fname"));
item.setPheight(currentDV.optString("height"));
item.setPweight(currentDV.optString("weight"));
item.setPprofile_about(currentDV.optString("pfl_about_me"));
item.setPPage(currentDV.optString("age"));
item.setPcity(currentDV.optString("city"));
item.setPcountry(currentDV.optString("country"));
item.setPavatar(currentDV.optString("avatar"));
item.setPonline(currentDV.optInt("online"));
item.setPmessage(currentDV.optInt("msg_on"));
item.setPfavs(currentDV.optInt("is_favorites"));
item.setPlists(currentDV.optInt("in_lists"));
item.setPimage(currentDV.optString("image_count"));
item.setPvideo(currentDV.optString("video_count"));
array.add(item);
}
} catch (JSONException e) {
e.printStackTrace();
}
adapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
})
{
@Override
protected Response<String> parseNetworkResponse(NetworkResponse response) {
String statusCode = String.valueOf(response.statusCode);
String message = "OK";
String session_id = String.valueOf(TokenHandler.getToken());
String data = "data: " + "session_id: " + session_id;
Log.d(LOG_TAG, "code: " + statusCode + "\n" + "message: " + message + "\n" + data);
return super.parseNetworkResponse(response);
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();
headers.put("X-Token", TokenHandler.getToken());
return headers;
}
@Override
public Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("user_name", "name");
params.put("password", "pass");
return params;
}
};
AppController.getmInstance().addToRequesQueue(stringRequest);
}
public void hideDialog(){
if (dialog !=null){
dialog.dismiss();
dialog = null;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}