как сохранить событие в Calenderpickerview - PullRequest
0 голосов
/ 23 февраля 2019

Как сохранить и добавить заметку на конкретную дату в Android и изменить ее цвет после сохранения. Я хочу сохранить событие на конкретную дату, когда пользователь нажимает на конкретную дату, появляется диалоговое окно, в котором пользователь сохраняет некоторую заметку в тексте редактирования и нажимает кнопку Сохранить после.при сохранении на конкретную дату цвет этой даты изменяется и всегда изменяется до тех пор, пока примечание не будет удалено

import com.squareup.timessquare.CalendarCellDecorator;
import com.squareup.timessquare.CalendarPickerView;
import com.squareup.timessquare.DefaultDayViewAdapter;


public class timesquare extends AppCompatActivity {
    CalendarPickerView datePicker;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_timesquare);

        getSupportActionBar().setTitle("WEEKLY GOALS");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        Date today = new Date();
        Calendar nextYear = Calendar.getInstance();
        nextYear.add(Calendar.YEAR, 1);
        datePicker = findViewById(R.id.calendar);
        datePicker.init(today, nextYear.getTime())
                .inMode(CalendarPickerView.SelectionMode.RANGE)
                .withSelectedDate(today);
        datePicker.setOnDateSelectedListener(new CalendarPickerView.OnDateSelectedListener() {
            @Override
            public void onDateSelected(Date date) {
                //String selectedDate = DateFormat.getDateInstance(DateFormat.FULL).format(date);

                Calendar calSelected = Calendar.getInstance();
                calSelected.setTime(date);


//                String selectedDate = "" + calSelected.get(Calendar.DAY_OF_MONTH)
//                        + " " + (calSelected.get(Calendar.MONTH) + 1)
//                        + " " + calSelected.get(Calendar.YEAR);

//                Toast.makeText(timesquare.this, selectedDate, Toast.LENGTH_SHORT).show();
                  dialog();
              datePicker.clearHighlightedDates();
            }

            @Override
            public void onDateUnselected(Date date) {
            }
        });
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());

        datePicker.setCustomDayView(new DefaultDayViewAdapter());
        datePicker.setDecorators(Collections.<CalendarCellDecorator>emptyList());
        // 20 years, enough to show performance failure.
        datePicker.init(getDateWithYear(2000), getDateWithYear(2030))
                .inMode(CalendarPickerView.SelectionMode.RANGE).withSelectedDate(c.getTime());

        datePicker.highlightDates(getHighlightedDaysForMonth( // Adds some highlighted days
                c.get(Calendar.MONTH) - 1, c.get(Calendar.MONTH), c.get(Calendar.MONTH) + 1));

        /*datePicker.setCustomDayView(new DefaultDayViewAdapter());
        Calendar todays = Calendar.getInstance();
        ArrayList<Date> dates = new ArrayList<Date>();
        for (int i = 0; i < 5; i++) {
            todays.add(Calendar.DAY_OF_MONTH, 3);
            dates.add(todays.getTime());
        }
        datePicker.setDecorators(Collections.<CalendarCellDecorator>emptyList());
        datePicker.init(new Date(), nextYear.getTime()) //
                .inMode(CalendarPickerView.SelectionMode.MULTIPLE) //
                .withSelectedDates(dates);*/
    }

    private Date getDateWithYear(int year) {
        final Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, 0);
        cal.set(Calendar.DAY_OF_MONTH, 1);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);

        return cal.getTime();
    }

    private List<Date> getHighlightedDaysForMonth(int... month) {
        List<Date> dateList = new ArrayList<>();

        Calendar c = Calendar.getInstance();
        c.setTime(new Date());

        for (int i = 0; i < month.length; i++) {
            for (int j = 0; j < 25; j++) {
                dateList.add(getDateWithYearAndMonthForDay(c.get(Calendar.YEAR), i, j));
            }
        }

        return dateList;
    }
    private Date getDateWithYearAndMonthForDay(int year, int month, int day) {
        final Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DAY_OF_MONTH, day);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);

        return cal.getTime();
    }

    public void dialog() {
        CustomDialogClass cdd=new CustomDialogClass(timesquare.this);
        cdd.show();
    }
}

это действие в диалоговом окне

public class CustomDialogClass extends Dialog {
    public Activity c;
    public Dialog d;
    public Button yes, no, rate_us;

    public CustomDialogClass(Activity context) {
        super(context);
        this.c = context;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.custom_dialog);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

        no = (Button) findViewById(R.id.submit);
        no.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dismiss();
            }
        });
    }

}

, и это диалоговое окно xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#138c93"
    android:orientation="vertical"
    android:weightSum="5">

    <LinearLayout
        android:layout_weight="2"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:background="#138c93"
        android:gravity="center"
        android:orientation="horizontal"
        android:weightSum="2">
        <TextView
            android:id="@+id/imageView2"
            android:layout_width="200dp"
            android:layout_height="60dp"
            android:layout_weight=".7"
            android:padding="10dp"
            android:textAlignment="center"
            android:text="Add task"
            android:textColor="#FFFFFF"
            android:textSize="18dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_weight="1"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:weightSum="4">

        <TextView
            android:layout_weight="1.5"
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:text="New note"
            android:textColor="#FFFFFF"
            android:textSize="20dp" />
        <EditText
            android:hint="note"
            android:textColorHint="#FFFFFF"
            android:textColor="#FFFFFF"
            android:layout_weight="2.5"
            android:layout_width="0dp"
            android:layout_height="60dp" />
    </LinearLayout>


    <LinearLayout
        android:layout_weight="1"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:weightSum="4">

        <TextView
            android:layout_weight="1.5"
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:text="New note"
            android:textColor="#FFFFFF"
            android:textSize="20dp" />
        <EditText
            android:hint="note"
            android:textColorHint="#FFFFFF"
            android:textColor="#FFFFFF"
            android:layout_weight="2.5"
            android:layout_width="0dp"
            android:layout_height="60dp" />
    </LinearLayout>
    <RelativeLayout
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="25dp">
        <Button
            android:id="@+id/submit"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_centerInParent="true"
            android:background="#fff"
            android:text="ok"
            android:textColor="#000"
            android:textStyle="bold" />
    </RelativeLayout>

</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...