我有一个DatePicker几乎可以按预期工作除了使用+/-按钮而不是使用+/-按钮时,用户在字段中输入。此时,即使它显示键入的值,它的getters也会返回用户输入之前的日期信息。一旦用户点击+或 - 它就会更新。
我看到一个采用值的更新方法,这不是我想要的。当用户点击“继续”按钮(与DatePicker无关)时,我想激发它重新检查它的值。我可以让一个听众失去焦点,但我没有看到我可以调用它来重新检查它的内容。
欢迎所有想法。
修改 一旦用户将焦点移离整个对象或甚至三个字段之间,DatePicker肯定会更新其值。我想,问题是当屏幕上没有其他任何可以聚焦的东西时,如何强迫焦点远离它。我正在尝试关注我的继续按钮,但由于某种原因拒绝关注。如果有人知道,也愿意更多地了解这一点。
答案 0 :(得分:6)
只需要在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 + ")");
}
});
答案 1 :(得分:0)
尝试将再次聚焦(requestFocus()
)DatePicker放在“继续”按钮的onPress方法上。