Как отсортировать список в ListView?

Как отсортировать список в ListView при нажатии на кнопку по определенному слову

MainActivity:

public class MainActivity extends AppCompatActivity {

// url массива users:
private static final String JSON_OPERATION = "http://";

ArrayList<JSONObject> infoListOP;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //вызов списка:
    loadJSONFromURLOperation(JSON_OPERATION);

}

    // функция вызова списка:
    private void  loadJSONFromURLOperation(String url){

        StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>(){
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject object = new JSONObject(response);
                            // получаемый массив users:
                            JSONArray jsonArray = object.getJSONArray("users");

                            ArrayList<JSONObject> listItems = getArrayListFromJSONArray(jsonArray);
                            infoListOP = listItems;

                            ListAdapter adapter = new ListViewAdapterOperation(getApplicationContext(),R.layout.row,R.id.textViewName, listItems);
                            listview_operation.setAdapter(adapter);

                        }catch (JSONException e){
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener(){
                    @Override
                    public void onErrorResponse(VolleyError error) {                           
                    }
                });

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }

private ArrayList<JSONObject> getArrayListFromJSONArray(JSONArray jsonArray){
    ArrayList<JSONObject> aList = new ArrayList<JSONObject>();
    try {
        if(jsonArray!= null){
            for(int i = 0; i<jsonArray.length();i++){
                aList.add(jsonArray.getJSONObject(i));
            }
        }
    }catch (JSONException js){
        js.printStackTrace();
    }
    return aList;
}

Класс адаптера списка:

public class ListViewAdapterOperation extends ArrayAdapter<JSONObject> {

int listLayout;
ArrayList< JSONObject> usersList;
Context context;

public ListViewAdapterOperation(Context context, int listLayout, int field, ArrayList<JSONObject> usersList) {
    super(context, listLayout, field, usersList);

    this.context = context;
    this.listLayout=listLayout;
    this.usersList = usersList;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View listViewItemOP = inflater.inflate(listLayout, null, false);

    // тут строчки, отображаемые в ListView в MainActivity:
    TextView Text = listViewItemOP.findViewById(R.id.Text);
    TextView TextStatus = listViewItemOP.findViewById(R.id.TextStatus);
    TextView TextSumma = listViewItemOP.findViewById(R.id.TextSumma);

    try{
        //Название операции:
        Text.setText(usersList.get(position).getString("Text"));
        //Пример текста в TextStatus: "В разработке", "Выполнен"
        TextStatus.setText(usersList.get(position).getString("TextStatus"));
        //Пример текста в TextSumma: "555.02"
        TextSumma.setText(usersList.get(position).getString("Summa"));

    }catch (JSONException je){
        je.printStackTrace();
    }
    return listViewItemOP;
}

Ответы (0 шт):