Skip to content Skip to sidebar Skip to footer

I Want To Select Multiple Dates In Calendar In Android

I want to select multiple dates in calendar,multiple select is working fine but in toast displaying only single date(first date).If I selected 4 days(1.8.14 to 4.8.14) all dates s

Solution 1:

A quick google says there is a method in CalendarPickerView called getSelectedDates() which returns a list of dates. This is probably what you want.

Updated link: https://github.com/square/android-times-square/blob/master/library/src/main/java/com/squareup/timessquare/CalendarPickerView.java

Solution 2:

Use SelectionMode.MULTIPLE

calendar.init(today, nextYear.getTime())
        .inMode(CalendarPickerView.SelectionMode.MULTIPLE);

findViewById(R.id.btn_done).setOnClickListener(newView.OnClickListener() {
@OverridepublicvoidonClick(View view) {
    Log.d("TAGGG", "Selected time in millis: " + calendar.getSelectedDate().getTime());
    Stringtoast="Selected: " + calendar.getSelectedDates();
    Toast.makeText(CalenderItem.this, toast, Toast.LENGTH_SHORT).show();
}
});

Solution 3:

Try below code for briefly explanation.......

final Calendar nextYear = Calendar.getInstance();
    nextYear.add(Calendar.YEAR, 2);


     gson = newGson();
    sharedpreferences1 = getSharedPreferences("MyPREFERENCES10005471hjsdhjsdjghjfdjksdlsasa00fdsadeetytadsadsywrerwerrw0255878762343", Context.MODE_PRIVATE);
    editor = sharedpreferences1.edit();
    calendar = (CalendarPickerView) findViewById(R.id.calendar_view);
    final String ddd=sharedpreferences1.getString("Str",null);
    sdf = newSimpleDateFormat("dd-MM-yyyy");
    Typetype = newTypeToken<ArrayList<Date>>() {}.getType();
    arrayList = gson.fromJson(ddd, type);
    dates = newArrayList<Date>();
    if(arrayList!=null){
        Toast.makeText(SampleTimesSquareActivity.this, "" + arrayList, LENGTH_SHORT).show();
        calendar.init(newDate(), nextYear.getTime()) //
                .inMode(SelectionMode.MULTIPLE) //
                .withSelectedDates(arrayList);
        for(int ii=0;ii<arrayList.size();ii++){
            Date d=arrayList.get(ii);
            String format=sdf.format(d);
            Toast.makeText(getApplicationContext(),format,Toast.LENGTH_SHORT).show();
        }
    }
    else{
        Toast.makeText(SampleTimesSquareActivity.this, "Null", LENGTH_SHORT).show();
        calendar.init(newDate(), nextYear.getTime()) //
                .inMode(SelectionMode.MULTIPLE) //
                .withSelectedDates(arrayList);
    }



    findViewById(R.id.done_button).setOnClickListener(newOnClickListener() {
        @OverridepublicvoidonClick(View view) {
            Log.d(TAG, "Selected time in millis: " + calendar.getSelectedDate().getTime());
            String toast = "Selected: " + calendar.getSelectedDate();
             dates = (ArrayList<Date>) calendar.getSelectedDates();
             String json=null;
            Log.i("Size",""+dates);
            for (int i = 0; i < dates.size(); i++) {
                Date tempDate = dates.get(i);
                String formattedDate = sdf.format(tempDate);
                Toast.makeText(SampleTimesSquareActivity.this, "" + formattedDate, LENGTH_SHORT).show();
                 json = gson.toJson(dates);

            }

            editor.putString("Str", json);
            editor.clear();
            editor.apply();
        }
    });

Thanks...take enjoy

Post a Comment for "I Want To Select Multiple Dates In Calendar In Android"