Reputation: 199
In my app I have two edittext and I want when click on that two edittext datepicker dialog open and set two value in edit text.
final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateDOB();
updateDOA();
}
};
doa.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DatePickerDialog(FamilyEditActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
spoucedob.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DatePickerDialog(FamilyEditActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
}
private void updateDOA() {
String myFormat = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
doa.setText(sdf.format(myCalendar.getTime()));
}
private void updateDOB() {
String myFormat = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
spoucedob.setText(sdf.format(myCalendar.getTime()));
}
this is my code.When I set date in one edittext, it change other edittext value in same time.Please tell me what is the problem... Thanks.
Upvotes: 3
Views: 1225
Reputation: 164099
Declare a variable at the class level:
EditText clickedEditText;
and inside the click listeners set it to the clicked EditText:
doa.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clickedEditText = (EditText) view;
new DatePickerDialog(FamilyEditActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
spoucedob.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clickedEditText = (EditText) view;
new DatePickerDialog(FamilyEditActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
Now you only need 1 method update()
:
private void update() {
String myFormat = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
clickedEditText.setText(sdf.format(myCalendar.getTime()));
}
and in onDateSet()
:
final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
update();
}
};
Upvotes: 6