首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在数据查询对话框中选择年份?

如何在数据查询对话框中选择年份?
EN

Stack Overflow用户
提问于 2015-09-15 11:04:44
回答 3查看 9.4K关注 0票数 4

我对Android程序很陌生。请帮帮忙。

我使用的片段,创建材料设计DatePickerDialog点击EditText。麻烦的是它被设定为当前日期(由我设定)。但是,如果用户必须选择过去的日期.比如说,10年前,用户每个月都要滚动,这是痛苦的。例如如下所示:

有什么办法让你选择今年吗?这样,用户就可以导航到年份。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-15 11:32:44

我认为比这更重要的是因为你没有最小的约会或者最多的约会。如果您尝试使用DatePicker创建自定义对话框,它就能工作。我也有一个编辑文本的例子。当用户单击Edittext时,我将调用此方法。

代码语言:javascript
复制
private void showDateDialog() {
    mLayoutInflater = getLayoutInflater();
    mCustomDatePicker = mLayoutInflater.inflate(R.layout.custom_date_picker, null);

    mDatePicker = (DatePicker) mCustomDatePicker.findViewById(R.id.datePicker);
    mDatePicker.setMaxDate(Calendar.getInstance().getTime().getTime());

    mCalendar = Calendar.getInstance();

    mDialog = new AlertDialog.Builder(this);
    mDialog.setView(mCustomDatePicker);
    mDialog.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            mCalendar.set(mDatePicker.getYear(), mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
            mBirthdayEdit.setText(mFormatDate.format(mCalendar.getTime()));

        }
    }).setNegativeButton(R.string.button_cancel, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });

    mDialog.create();
    mDialog.show();
}

你的布局

代码语言:javascript
复制
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">

    <DatePicker
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/datePicker"
        android:layout_gravity="center_horizontal"
        android:spinnersShown="true"
        android:calendarViewShown="false"
        android:layout_alignParentTop="true"/>
</RelativeLayout>
票数 1
EN

Stack Overflow用户

发布于 2019-06-27 11:13:40

至少在Android 7上,您可以单击“年份”并获得“年度选择”对话框:

票数 2
EN

Stack Overflow用户

发布于 2019-05-22 12:29:27

代码语言:javascript
复制
    public void setMaxDate() {
        final Calendar currentDate = Calendar.getInstance();
        date = Calendar.getInstance();

        DatePickerDialog.OnDateSetListener dateSetListener = new

                DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker datePicker, int year, int
                            monthOfYear, int dayOfMonth) {
                        date.set(year, monthOfYear, dayOfMonth);

                        //use this date as per your requirement
                    }
                };
        DatePickerDialog datePickerDialog = new
                DatePickerDialog(EditProfileActivity.this, dateSetListener,
                currentDate.get(Calendar.YEAR),
                currentDate.get(Calendar.MONTH ),
                currentDate.get(Calendar.DAY_OF_MONTH));
        // Limiting access to past dates in the step below:


Calendar calendar = Calendar.getInstance();
                    calendar.add(Calendar.YEAR, -14);
                    datePickerDialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());
                    datePickerDialog.show();
    }

这是工作代码,您可以在14年前设置最大日期。

享受.!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32584417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档