如何从 Android 中的日历中提取日期?

How to extract date from calendar in Android?

我正在尝试在 Android 中制作一个活动策划应用程序。我已经添加了一个日历 widget 现在我想要的是每当用户单击添加事件按钮时,它将转到一个新的 Activity 屏幕和用户在日历中选择的日期previous Activity 被准确复制到文本字段。谁能帮我处理这段代码?
P.S.- 我在主屏幕上添加了两个 Fragments,一个用于日历,一个用于 Buttons

提前致谢。

如果您的意思是 DatePicker 那么这就是您通过注册日期选择侦听器来选择日期的方式

datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {

    @Override
    public void onDateChanged(DatePicker datePicker, int year, int month, int dayOfMonth) {
                    Log.d("Date", "Year=" + year + " Month=" + (month + 1) + " day=" + dayOfMonth);

                }
            });

或者您随时通过 :

获取所选日期
 DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1);
 int day = datePicker.getDayOfMonth();
 int month = datePicker.getMonth() + 1;
 int year = datePicker.getYear();

或者,如果您使用的是 CalendarView,那么一个简单的 getDate() 调用就可以解决问题。现在从中提取日、月、年并将其通过 Intent

传递给下一个 activity

如果您正在使用其他东西,请告诉我们。

// Declaration

 private int mDay;
 private int mMonth;
 private int mYear;


// Creating click listener of button

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

     // Getting values from DatePicker

     DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker1);
     mDay = datePicker.getDayOfMonth();
     mMonth = datePicker.getMonth() + 1;
     mYear = datePicker.getYear();

    // Here you have to write the code to start new Activity
    // If your second activity name is "SecondActivity" then use below code

    Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

    // Put the date values to the intent
    intent.putExtra("Day",mDay);
    intent.putExtra("Month",mMonth);
    intent.putExtra("Year",mYear);

    startActivity(intent);

}
});

Activity

int day;
int month;
int year;

EditText dateEditText;

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

    dateEditText = (EditText)findViewById(R.id.dateEditText);

    Intent intent = getIntent();

    if(intent != null){
         day = intent.getIntExtra("Day",0);
         month = intent.getIntExtra("Month",0);
         year = intent.getIntExtra("Year",0);

         Calendar calendar = Calendar.getInstance();
         calendar.set(2013,5,23);


         SimpleDateFormat format = new SimpleDateFormat("EEEE, MMMM d, yyyy 'at' h:mm a");
        dateEditText.setText(format.format(calendar.getTime()));

    }

}

编辑

// If you are using Calendar View

calendarView.setOnDateChangeListener(new OnDateChangeListener() {

@Override
public void onSelectedDayChange(CalendarView arg0, int year, int month,
    int date) {

     mDay = date;
     mYear = year;
     mMonth = month;
     // Now you can uses year, month date to sent 
}

});

 // Click Listener of Button in case of CalenderView

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

    // Here you have to write the code to start new Activity
    // If your second activity name is "SecondActivity" then use below code

    Intent intent = new Intent(FirstActivity.this,SecondActivity.class);

    // Put the date values to the intent
    intent.putExtra("Day",mDay);
    intent.putExtra("Month",mMonth);
    intent.putExtra("Year",mYear);

    startActivity(intent);

}
});