我的活动有3个日期选择器。当我点击第一个日期选择器并进行更改时,它会反映到其他日期选择器。但是每个日期选择器都应该在我点击它时显示当前日期。
当我在第一个日期选择器上选择日期23-07-1993并在edittext中设置它时,然后我点击第二个日期选择器它显示日期23-07-1993。那么我在第一个做出的更改选择器在这里反映。
我想要的是,每当我点击日期选择器时,它应该显示当前日期,它不应该反映其他选择器的变化。
我的.java类是,
private void setDateOfBirth() {
DatePickerDialog.OnDateSetListener dateOfBirth = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, monthOfYear);
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateDateOfBirth();
}//onDateSet
private void updateDateOfBirth() {
String myFormat = "yyyy-MM-dd"; //In which you need put here
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
date_of_birth = sdf.format(calendar.getTime());
Log.d("date_of_birth",date_of_birth);
edittext_dateOfBirth.setText(date_of_birth);
}//updateRenewalDate
};//DatePickerDialog
}
private void setJoinDate() {
DatePickerDialog.OnDateSetListener joinDate = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, monthOfYear);
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateJoinDate();
}//onDateSet
private void updateJoinDate() {
String myFormat = "yyyy-MM-dd"; //In which you need put here
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
join_date = sdf.format(calendar.getTime());
Log.d("join_date",join_date);
edittext_joinDate.setText(join_date);
}//updateJoinDate
};//DatePickerDialog
}
答案 0 :(得分:1)
您在所有这些日历对象之间使用相同的日历对象,这就是为什么它们都被反映出来的原因。为每个日期选择器创建三个单独的日历对象。