如何从 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);
}
});
我正在尝试在 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
如果您正在使用其他东西,请告诉我们。
// 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);
}
});