I have sort the arraylist named ArrayList> addressaray; add response data to arraylist using
JSONObject object = new JSONArray(s.toString());JSONArray arr1 = new JSONArray(object.getString("data").toString()).getJSONArray(0);for (int i = 0; i < arr1.length(); i++) { JSONObject jsonObject = arr1.getJSONObject(i); HashMap<String, String> data = new HashMap<String, String>(); data.put("id", jsonObject.getString("id")); data.put("date_inspected_details", jsonObject.getString("date_inspected_details")); addressaray.add(data); } adapter = new PropertiesEvaluatedFragmentAdapter(getActivity(), addressaray, getActivity().getSupportFragmentManager()); listView.setAdapter(adapter); adapter.notifyDataSetChanged();} @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String item = parent.getItemAtPosition(position).toString(); if(addressaray.size() > 0){ sortListView(item); adapter.notifyDataSetChanged(); }else{ Toast.makeText(getActivity(), "No Record found.", Toast.LENGTH_SHORT).show(); }} private void sortListView(String option) { switch (option) { case "Date":Collections.sort(addressaray, new Comparator<HashMap<String, String>>() { final static String COMPARE_KEY = "date_inspected_details"; @Override public int compare(HashMap<String, String> lhs, HashMap<String, String> rhs) { String Date1 = lhs.get(COMPARE_KEY); String Date2 = rhs.get(COMPARE_KEY); Log.e("Date1", Date1); Log.e("Date2", Date2); // Do your comparison logic here and retrn accordingly. return Date1.compareTo(Date2); } }); break;}}JSONObject object = new JSONArray(s.toString());JSONArray arr1 = new JSONArray(object.getString("data").toString()).getJSONArray(0);for (int i = 0; i < arr1.length(); i++) { JSONObject jsonObject = arr1.getJSONObject(i); HashMap<String, String> data = new HashMap<String, String>(); data.put("id", jsonObject.getString("id")); data.put("date_inspected_details", jsonObject.getString("date_inspected_details")); addressaray.add(data); } adapter = new PropertiesEvaluatedFragmentAdapter(getActivity(), addressaray, getActivity().getSupportFragmentManager()); listView.setAdapter(adapter); adapter.notifyDataSetChanged();} @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String item = parent.getItemAtPosition(position).toString(); if(addressaray.size() > 0){ sortListView(item); adapter.notifyDataSetChanged(); }else{ Toast.makeText(getActivity(), "No Record found.", Toast.LENGTH_SHORT).show(); }} private void sortListView(String option) { switch (option) { case "Date":Collections.sort(addressaray, new Comparator<HashMap<String, String>>() { final static String COMPARE_KEY = "date_inspected_details"; @Override public int compare(HashMap<String, String> lhs, HashMap<String, String> rhs) { String Date1 = lhs.get(COMPARE_KEY); String Date2 = rhs.get(COMPARE_KEY); Log.e("Date1", Date1); Log.e("Date2", Date2); // Do your comparison logic here and retrn accordingly. return Date1.compareTo(Date2); } }); break;}}