我正在體驗我認爲是DatePicker錯誤。Android DatePicker年不更新
我有一個日期選擇器對話框:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:paddingLeft="20dp"
android:paddingRight="20dp"
>
<DatePicker
android:id="@+id/datePicker"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:calendarViewShown="false"
android:layout_gravity="center_horizontal"
android:paddingBottom="20dp"
android:paddingTop="10dp"
>
</DatePicker>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal"
android:weightSum="1"
android:gravity="center_horizontal"
>
<Button
android:id="@+id/cmdCancel"
android:text="@android:string/cancel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
>
</Button>
<Button
android:id="@+id/cmdOK"
android:text="@android:string/ok"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
>
</Button>
</LinearLayout>
</LinearLayout>
我得到它的句柄和需要的日期條目時顯示的對話框。該Ok
按鈕的代碼是這樣的:
Button cmdOK = (Button)dialogDate.findViewById(R.id.cmdOK);
cmdOK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
int day = datePicker.getDayOfMonth();
int month = datePicker.getMonth()+1; // offset index
int year = datePicker.getYear();
String dob = month+"/"+day+"/"+year;
txtDOB.setText(dob);
closeDialogDate();
} catch (Exception e) {
e.printStackTrace();
}
}
});
一切正常SANS一個場景,我可以重複的行爲。
問題:
如果我選擇在今年通過點擊的價值,並得到一個數字鍵盤,輸入日期和它的最後一件事,進入正題,我是否打done
鍵盤上或剛打Ok
按鈕,執行處理,年份不會正確更新。如果我選擇日期或月份值,然後點擊Ok
年份正確更新。如果我使用紡紗機,年份會正確更新。錯誤出現的唯一時間是最後一次和直接輸入的值。
我沒有正確地做什麼?
這不是-1900問題。使用提供的屏幕快照,該值將更改爲1990年,而1984年將返回 - 默認值。
其他參考資料:
- OS V4.0.4(冰淇淋三明治)
- 目標API 4.0
只有年份的價值表現如此。月份和日期以任意順序正常工作。非常好奇。 – 2014-10-27 21:42:06
我能夠重現與日還,看到我更新的答案。 – 2014-10-27 21:49:31
也許這個問題應該是'如何強制DatePicker上的字段更新'? – 2014-10-27 22:04:33