obter o dia anterior / seguinte Pressione a tecla após obter a data da atividade anterior usando o SharedPreferences android

Na minha aplicação, estou usandoesta biblioteca para exibição de calendário personalizado. Ao clicar em qualquer data, estou passando essa data para a próxima atividade por meio de preferências compartilhadas. Eu posso exibir a data na próxima atividade. Agora, o que eu quero é que haja dois botões, um é "Anterior" e outro "Próximo". se eu clicar em qualquer botão, a data deve mudar de acordo com os requisitos.

O código da data ao clicar é

calendarView.setOnDateClickListener(new CalendarView.OnDateClickListener() {
        @Override
        public void onDateClick(@NonNull Date selectedDate) {
            SimpleDateFormat df_new = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault());
            String newselectedDate=df_new.format(selectedDate);
            Toast.makeText(getApplicationContext(), "You selected" + newselectedDate + " : Date", Toast.LENGTH_SHORT).show();

            // SharedPreferences for sharing the Date with Next Activity, Added by Tara
            SimpleDateFormat s_day=new SimpleDateFormat("dd",Locale.getDefault()); String sdd=s_day.format(selectedDate);
            SimpleDateFormat s_month=new SimpleDateFormat("MM",Locale.getDefault());String smm=s_month.format(selectedDate);
            SimpleDateFormat s_year=new SimpleDateFormat("yyyy",Locale.getDefault());String syy=s_year.format(selectedDate);
            SharedPreferences spf= getSharedPreferences("myprfs", Context.MODE_PRIVATE);
            SharedPreferences.Editor spe = spf.edit();
          //  spe.putString("sdate", String.valueOf(selectedDate));
            spe.putString("sday", String.valueOf(sdd));
            spe.putString("smonth", String.valueOf(smm));
            spe.putString("syear", String.valueOf(syy));
            Log.d("Day is", String.valueOf(sdd));
            Log.d("Month is", String.valueOf(smm));
            Log.d("Year  is", String.valueOf(syy));

            spe.commit();


            Intent i_available_slot=new Intent(BookAnAppoinment.this, ChangeDate.class);
            startActivity(i_available_slot);
        }
    });

e a próxima atividade em que estou recuperando a data por preferência compartilhada é

SharedPreferences spf=getSharedPreferences("myprfs", Context.MODE_PRIVATE);
    String id1 = spf.getString("sday", "no value");
    String id2 = spf.getString("smonth", "no value");
    String id3 = spf.getString("syear", "no value");

    String sdate=id1+"-"+id2+"-"+id3;
  //  d.setText(sdate);

    final SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
    final String formattedDate = df.format(sdate);

    d.setText(formattedDate);

    try {
        Date date=df.parse(sdate);
        Calendar cal = df.getCalendar();
    } catch (ParseException e) {
        e.printStackTrace();
    }

    n.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });
    p.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

Eu escrevi o bloco try / catch, mas incapaz de codificar conforme minha exigência. por favor, me ajude.

questionAnswers(1)

yourAnswerToTheQuestion