在我的应用程序中,我有两个 edittext 并且我想要当单击打开的两个 edittext datepicker 对话框并在编辑文本中设置两个值时。
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()));
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码。当我在一个 edittext 中设置日期时,它会同时更改其他 edittext 值。请告诉我是什么问题...谢谢。
在类级别声明一个变量:
EditText clickedEditText;
Run Code Online (Sandbox Code Playgroud)
并在点击侦听器中将其设置为点击的 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();
}
});
Run Code Online (Sandbox Code Playgroud)
现在你只需要一种方法update():
private void update() {
String myFormat = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
clickedEditText.setText(sdf.format(myCalendar.getTime()));
}
Run Code Online (Sandbox Code Playgroud)
并在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();
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |