私はそれがもう1年前であることを知っていますが、おそらく他の誰かがその問題の解決策を必要としています. 昨日、私は同じ問題を抱えていましたが、小さな回避策で解決しました。Androidから提供されたものではなく、独自のDatePickerDialogを作成しました。
コードは次のとおりです。
dialog_date_picker.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<DatePicker
android:id="@+id/dlgDatePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:spinnersShown="true"
android:calendarViewShown="false"/>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"/>
<Button
android:id="@+id/dlgDatePickerBtnDone"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/dlg_date_picker_button"
/>
</LinearLayout>
DialogDatePicker.java
public class DialogDatePicker extends DialogFragment {
private DatePicker dp;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_date_picker, container);
dp = (DatePicker) view.findViewById(R.id.dlgDatePicker);
view.findViewById(R.id.dlgDatePickerBtnDone).setOnClickListener(setDate);
getDialog().setTitle(R.string.dlg_date_picker_title);
return view;
}
private View.OnClickListener setDate = new View.OnClickListener() {
@Override
public void onClick(View view) {
int dayOfMonth = dp.getDayOfMonth();
int monthOfYear = dp.getMonth()+1; //0 = jan, 1 = feb, ...
int year = dp.getYear();
String date = String.format(Locale.GERMANY,"%s.%s.%s", dayOfMonth, monthOfYear, year);
((TextView) getActivity().findViewById(R.id.route_setting_date))
.setText(date);
dismiss();
}
};
}
そして最後に、新しいテーマでの呼び出し
DialogDatePicker ddp = new DialogDatePicker();
ddp.setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Holo_Dialog);
ddp.show(getFragmentManager(),"DialogDatePicker");