RecyclerView сохранение результата загрузки БД, до следующего обновления БД, PhpMyAdmin

В RecyclerView показываться данные из БД находящиеся на PhpMyAdmin. Мне нужно чтобы после перезапуска приложения, таблица которая загрузилась из PhpMyAdmin в RecyclerView, не удаляла данные. То есть запускаю приложение, у меня загружается таблица, после я закрываю приложение и выключаю интернет, захожу в приложение и у меня загружается та таблица которая была загружена при последнем подключении к интернету. Как правильно написать код чтобы это реализовать? Обновляю я данные с помощью SwipeRefreshLayout

public class FragmentRink extends Fragment {
    private RecyclerView mRec_srs;
    private AdapterSkatingRinkSchedule adapter_srs;
    private ArrayList<ItemSkatingRinkSchedule> exampleList;

    private RecyclerView.LayoutManager mLayoutManager;

    List<ItemSkatingRinkSchedule_2> mSkatingRinkScheduleList;

    RecyclerView recyclerView;
    RecyclerView.LayoutManager recyclerViewlayoutManager;
    RecyclerView.Adapter recyclerViewadapter;
    String HTTP_JSON_URL = "http://qqqqqqqqq.mcdir.ru/Subjects.php";
    String GET_JSON_FROM_SERVER_NUMBER = "session_number";
    String GET_JSON_FROM_SERVER_START = "session_start";
    String GET_JSON_FROM_SERVER_END = "session_end";
    String GET_JSON_FROM_SERVER_WEEKDAYS = "weekdays";
    String GET_JSON_FROM_SERVER_WEEKDAYS_AND_HOLIDAYS = "weekends_and_holidays";
    JsonArrayRequest jsonArrayRequest;
    RequestQueue requestQueue;
    View ChildView;
    int GetItemPosition;
    ArrayList<String> SubjectNames;

    private SwipeRefreshLayout mSwipeRefreshLayout;

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

        OnBackPressedCallback callback = new OnBackPressedCallback(true) {
            @Override
            public void handleOnBackPressed() {
                Intent homeIntent = new Intent(Intent.ACTION_MAIN);
                homeIntent.addCategory(Intent.CATEGORY_HOME);
                homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(homeIntent);
            }
        };

        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_rink, container, false);
    }

    @Override
    public void onViewCreated(@NonNull final View view, @Nullable Bundle savedInstanceState) {


        mSkatingRinkScheduleList = new ArrayList<>();
        recyclerView = requireView().findViewById(R.id.recy_srs);
        recyclerView.setHasFixedSize(true);
        recyclerViewlayoutManager = new LinearLayoutManager(getContext());
        recyclerView.setLayoutManager(recyclerViewlayoutManager);
        SubjectNames = new ArrayList<>();
        JSON_DATA_WEB_CALL();
        recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
            final GestureDetector gestureDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {

                @Override
                public boolean onSingleTapUp(MotionEvent motionEvent) {
                    return true;
                }

            });

            @Override
            public boolean onInterceptTouchEvent(@NonNull RecyclerView Recyclerview, @NonNull MotionEvent motionEvent) {
                ChildView = Recyclerview.findChildViewUnder(motionEvent.getX(), motionEvent.getY());
                if (ChildView != null && gestureDetector.onTouchEvent(motionEvent)) {
                    GetItemPosition = Recyclerview.getChildAdapterPosition(ChildView);

                }
                return false;
            }

            @Override
            public void onTouchEvent(@NonNull RecyclerView Recyclerview, @NonNull MotionEvent motionEvent) {
            }

            @Override
            public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
            }
        });
        mSwipeRefreshLayout = requireView().findViewById(R.id.ref);
        mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                JSON_DATA_WEB_CALL();
                mSwipeRefreshLayout.setRefreshing(false);
            }
        });
    }

    public void JSON_DATA_WEB_CALL() {
        jsonArrayRequest = new JsonArrayRequest(HTTP_JSON_URL,
                this::JSON_PARSE_DATA_AFTER_WEBCALL,
                error -> {
                });
        requestQueue = Volley.newRequestQueue(getContext());
        requestQueue.add(jsonArrayRequest);
    }

    public void JSON_PARSE_DATA_AFTER_WEBCALL(JSONArray array) {
        mSkatingRinkScheduleList.clear();
        for (int i = 0; i < array.length(); i++) {
            ItemSkatingRinkSchedule_2 GetDataAdapter2 = new ItemSkatingRinkSchedule_2();
            JSONObject json;
            try {
                json = array.getJSONObject(i);
                GetDataAdapter2.set_session_number(json.getString(GET_JSON_FROM_SERVER_NUMBER));
                GetDataAdapter2.set_session_start(json.getString(GET_JSON_FROM_SERVER_START));
                GetDataAdapter2.set_session_end(json.getString(GET_JSON_FROM_SERVER_END));
                GetDataAdapter2.set_weekdays(json.getString(GET_JSON_FROM_SERVER_WEEKDAYS));
                GetDataAdapter2.set_weekends_and_holidays(json.getString(GET_JSON_FROM_SERVER_WEEKDAYS_AND_HOLIDAYS));
                SubjectNames.add(json.getString(GET_JSON_FROM_SERVER_NUMBER));
                SubjectNames.add(json.getString(GET_JSON_FROM_SERVER_START));
                SubjectNames.add(json.getString(GET_JSON_FROM_SERVER_END));
                SubjectNames.add(json.getString(GET_JSON_FROM_SERVER_WEEKDAYS));
                SubjectNames.add(json.getString(GET_JSON_FROM_SERVER_WEEKDAYS_AND_HOLIDAYS));
            } catch (JSONException e) {

                e.printStackTrace();
            }
            mSkatingRinkScheduleList.add(GetDataAdapter2);
        }
        recyclerViewadapter = new AdapterSkatingRinkSchedule_2((ArrayList<ItemSkatingRinkSchedule_2>) mSkatingRinkScheduleList);
        recyclerView.setAdapter(recyclerViewadapter);
    }
}

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