Мне нужна помощь с фильтром результатов JSON в моем android студийном проекте. Я могу успешно извлечь данные JSON, но пытаюсь внедрить в них функцию поиска. Вот мой код для получения строки поиска
private void StartSearching(String search_now) {
ArrayList<TrackClass> trackClassArrayList1 = new ArrayList<>();
for (TrackClass object : trackClassList) {
if (object.getTrack_Name().toLowerCase().contains(search_now.toLowerCase())) {
trackClassArrayList1.add(object);
}
getWebApiDataUsingVolleySearch(trackClassArrayList1);
}
}
А вот код для получения результата поиска данных
private void getSearch(ArrayList<TrackClass> trackClassArrayList1){
String WebDataUrl = "link for the json file here";
JsonObjectRequest jsonArrayRequest = new JsonObjectRequest(Request.Method.GET, WebDataUrl,
null,
response -> {
try{
JSONArray jsonArray = response.getJSONArray("NAMES");
for(int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
JSONArray jsonArray1 = jsonObject.getJSONArray("names");
//for (int k = 0; k < 3; k++) {
for (int k = 0; k < jsonArray1.length(); k++) {
JSONObject jsonObject1 = jsonArray1.optJSONObject(k);
id_data = jsonObject1.optString("id");
title_data = jsonObject1.optString("title");
TrackClass trackClass = new TrackClass();
trackClass.setTrack_Id(id_data);
trackClass.setTrack_Name(title_data);
trackClassArrayList1.add(trackClass);
tracksAdapter = new TracksAdapter(Tracks.this, R.layout.tracks_adapter, trackClassArrayList1);
tracksAdapter.setListData(trackClassArrayList1);
listView.setAdapter(tracksAdapter);
tracksAdapter.notifyDataSetChanged();
}
}
}catch (JSONException e){
}
},
);
requestQueue.add(jsonArrayRequest);
}
Примечание ** этот код отлично работает, когда я использую его для поиск в базе данных firebase, которую я ожидал, поскольку firebase также использует JSON файловую структуру