我有一个DatePicker几乎按预期工作除了使用/ – 按钮,用户在字段中键入时,而不是使用/ – 按钮.此时,即使它显示键入的值,它的getters也会返回用户输入之前的日期信息.一旦用户点击或 – 它更新.
我看到一个采用值的更新方法,这不是我想要的.当用户点击“继续”按钮(与DatePicker无关)时,我想激发它重新检查它的值.我可以将一个听众附加到失去焦点,但我没有看到我可以调用它来重新检查它的内容.
欢迎所有想法.
编辑
一旦用户将焦点移离整个对象或甚至三个字段之间,DatePicker肯定会更新其值.我想,问题是当屏幕上没有其他任何可以聚焦的东西时,如何强迫焦点远离它.我正在尝试关注我的继续按钮,但由于某种原因拒绝关注.如果有人知道,也愿意更多地了解这一点.
解决方法:
只需要在DatePicker上清除焦点.不需要隐藏的领域.
final DatePicker dp = (DatePicker)v.findViewById(R.id.dpDate);
dlg.setPositiveButton("Done", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dp.clearFocus();
String val = "";
int m = dp.getMonth() + 1;
val = m + "/" + dp.getDayOfMonth() + "/" + dp.getYear();
mA.setmDOB(val);
etAge.setText(AppHelper.calcAge(val, "y", false) + " (" + val + ")");
}
});