Добавление даты из календаря в EditText в другом классе

Я сделал приложение, в котором пользователь может выбрать дату в календаре в моем Calendar.java действии, как только пользователь выберет эту дату. Я хочу, чтобы эта дата была помещена в поле EditText в отдельном действии под названием AddDeadline. В настоящее время у меня есть календарь, и как только пользователь выбирает эту дату, он приводит их к отдельному действию под названием AddDeadline.java и отображает дату как тостер. Есть ли способ, которым, когда пользователь выбирает дату, он помещает эту дату в мой EditText в моем поле активности AddDeadline.java.

Мой код как пара

Календарь.java

CalendarView calendar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_calender);


    calendar = (CalendarView) findViewById(R.id.calendarView);
    calendar.setOnDateChangeListener(new CalendarView.OnDateChangeListener()  {

        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
            Toast.makeText(getApplicationContext(), dayOfMonth+ "/" + month + "/" + year, Toast.LENGTH_LONG).show();
            startActivity(new Intent(Calender.this, AddDeadline.class));
        }

    });
}

AddDeadline.java

public EditText editDate;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_deadline);

editDate = (EditText)findViewById(R.id.editText3);


            final EditText edate = (EditText) findViewById(R.id.editText3);
            edate.setOnClickListener(new View.OnClickListener()

            {

                @Override
                public void onClick (View v){
                // TODO Auto-generated method stub
                //To show current date in the datepicker
                Calendar mcurrentDate = Calendar.getInstance();
                int mYear = mcurrentDate.get(Calendar.YEAR);
                int mMonth = mcurrentDate.get(Calendar.MONTH);
                int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);

                DatePickerDialog mDatePicker;
                mDatePicker = new DatePickerDialog(AddDeadline.this, new DatePickerDialog.OnDateSetListener() {
                    public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
                        // TODO Auto-generated method stub
                    /*      Your code   to get date and time    */
                        selectedmonth = selectedmonth + 1;
                        edate.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
                    }
                }, mYear, mMonth, mDay);
                mDatePicker.setTitle("Select Date");
                mDatePicker.show();
            }
            }

            );
        }

person Craig Gallagher    schedule 17.04.2016    source источник
comment
Я предлагаю сначала прочитать некоторые ответы на похожие вопросы на этом сайте: stackoverflow.com/questions/10309927/ stackoverflow.com/questions/33500624/ stackoverflow.com/questions/13643940/   -  person Mark B    schedule 17.04.2016


Ответы (1)


Вы можете поместить данные в намерение, например

CalendarView calendar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_calender);


    calendar = (CalendarView) findViewById(R.id.calendarView);
    calendar.setOnDateChangeListener(new CalendarView.OnDateChangeListener()  {

        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
            Toast.makeText(getApplicationContext(), dayOfMonth+ "/" + month + "/" + year, Toast.LENGTH_LONG).show();
            Intent intent = new Intent(Calender.this, AddDeadline.class)
             intent.putExtra("date", dayOfMonth+ "/" + month + "/" + year);
            startActivity(intent);
        }

    });
}

получить дату в классе AddDeadline по

String data = getIntent().getExtras().getString("date");

как

 @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_add_deadline);
    String data = getIntent().getExtras().getString("date");

    editDate = (EditText)findViewById(R.id.editText3);
editDate.setText(date);


}
person Kathi    schedule 17.04.2016
comment
Спасибо, это сработало как шарм и хорошо объяснено. Отмечен как правильный и +1. - person Craig Gallagher; 17.04.2016