Android DatePickerDialog掩码日历

时间:2015-10-06 18:37:22

标签: android android-datepicker

我目前正在使用Android DatePickerDialog,因为我想屏蔽日历并仅显示3个字段(日,月,年),作为一个紧凑且更简单的选择,因为我要求生日。

public void addCalendar(){
    final Calendar myCalendar = Calendar.getInstance();

    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);
            SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.FRANCE);

            _birthdateText.setText(sdf.format(myCalendar.getTime()));
        }

    };

    _birthdateText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            DatePickerDialog dpd = new DatePickerDialog(SignupActivity.this, date, myCalendar
                    .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                    myCalendar.get(Calendar.DAY_OF_MONTH));
            dpd.getDatePicker().setCalendarViewShown(false);
            //dpd.getDatePicker().setSpinnersShown(true);
            dpd.setTitle(getString(R.string.birthdate_picker_title));
            dpd.show();
        }
    });
}

我的印象是不考虑setCalendarViewShown(false)。

1 个答案:

答案 0 :(得分:0)

最好的方法是通过布局文件进行充气:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="horizontal" >
    <DatePicker
        android:id="@+id/datePicker1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:calendarViewShown="false"
        android:datePickerMode="spinner">
    </DatePicker>
</LinearLayout>

这甚至在棒棒糖中也很有效,隐藏了日历。