如何限制DatePickerDialog选择过去2 - 12年或当前日期0 - 2年的日期?
我在活动中有DatePickerDialog,用于获取儿童和婴儿的出生日期.儿童年龄为(2-12岁),婴儿年龄为(0-2岁).如果我通过1,那么年龄限制应该是(2-12岁),如果我通过2岁,年龄限制应该是(0-2岁).
我该怎么做才能在我的日历中获得此功能?
我的日历代码是:
date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
String myFormat = "dd/MM/yy"; //In which you need put here
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
dateofBirth.setText(sdf.format(myCalendar.getTime()));
}
};
dateofBirth.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(DATE_DIALOG_ID);
}
});
public Dialog onCreateDialog(int id) {
final …Run Code Online (Sandbox Code Playgroud) 我有ScrollView一个Datepicker
在以前的Android版本中,Datepicker是这样的:

我可以滚动Datepicker日,月,年的单个元素没有问题
在Android Lollipop API level 21 Material中,Datepiker以这种方式显示:


如果我点击月份显示日历视图而我无法更改月份,我只能选择当天.如果我尝试编辑年份显示年份滚动条,但如果我尝试滚动它,则包含datepicker的整个布局将滚动,而不仅仅是日期.
calendarViewShown=false
Run Code Online (Sandbox Code Playgroud)
似乎被忽视了
我怎么能解决这个问题???
android datepicker android-datepicker datepickerdialog android-5.0-lollipop
在Java中,可以使用DatePickerDialog,例如:
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dpd = new DatePickerDialog(getActivity(),new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
// Display Selected date in textbox
lblDate.setText(""+ dayOfMonth+" "+MONTHS[monthOfYear] + ", " + year);
}
}, year, month,day);
dpd.show();
Run Code Online (Sandbox Code Playgroud)
Kotlin的DatePickerDialog如何使用?
我有一个由开始和结束日期组成的时间间隔.我有办法让用户通过DatePickerDialogs设置这些日期.以下是创建和显示对话框的方法的代码:
private void editInterval(boolean beginning) {
DatePickerDialog dpd;
Calendar cal = Calendar.getInstance();
if (beginning) {
dpd = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
someTimeDuringYear1 = year;
someTimeDuringMonth1 = monthOfYear + 1;
someTimeDuringDay1 = dayOfMonth;
Calendar cal1 = Calendar.getInstance();
cal1.set(Calendar.YEAR, year);
cal1.set(Calendar.MONTH, monthOfYear);
cal1.set(Calendar.DAY_OF_MONTH, dayOfMonth);
Calendar cal2 = Calendar.getInstance();
cal2.set(Calendar.YEAR, someTimeDuringYear2);
cal2.set(Calendar.MONTH, someTimeDuringMonth2);
cal2.set(Calendar.DAY_OF_MONTH, someTimeDuringDay2);
if (cal1.getTimeInMillis() > cal2.getTimeInMillis()) {
someTimeDuringYear2 = someTimeDuringYear1;
someTimeDuringMonth2 = someTimeDuringMonth1;
someTimeDuringDay2 = someTimeDuringDay1;
} …Run Code Online (Sandbox Code Playgroud) 我想DatePickerDialog在我的应用程序中创建一个Android,但当我创建一个时,DatePickerDialog我收到以下消息:Call requires API level 24 (current min is 14): android.app.DatePickerDialog#DatePickerDialog
我如何使用DatePickerDialog旧的API版本?
我希望我的DatePickerDialog在打开时立即显示年份列表.
例如,当我显示对话框时,我看到了日历视图:
:
如果我点击文本"1900",则显示年份视图:

我尝试了这段代码,但它没有任何效果,我对我能做的事情一无所知:
DatePickerDialog birthDatePicker = new DatePickerDialog(getActivity(), this, 0, 0, 0);
birthDatePicker.getDatePicker().setSpinnersShown(true);
birthDatePicker.show();
我试图在datePicker对话框中以类似的格式显示日期Sep|29|2016.你可以在下面的图像中看到.
不幸的是,大部分时间我28|M09|2016很少得到我的预期输出.你可以在下面的图像中看到
我试过以下代码
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.US));
calendar.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.US);
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("yearr==="+yy);
System.out.println("monthh==="+mm);
System.out.println("dayy==="+dd);
DatePickerDialog datepickerdialog = new DatePickerDialog(getActivity(),
this,yy,mm,dd);
return datepickerdialog;
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的期待.
我们有一名成员报告他无法在我们的DatePickerDialog上设置1970年1月1日之前的日期.这个问题不适合我们.
我已经知道DatePickerDialog没有公开底层DatePicker的setMinDate/setMaxDate函数,所以看起来某种手机制造商特定的修改正在影响minDate/maxDate.
该用户报告说他正在运行2.2 Froyo的Verizon上运行Droid x2.虽然我们认为他对他的设备型号的描述是正确的,但许多用户对操作系统版本感到困惑,所以他可能正在运行2.3.
我试图通过将此主题添加到我的Activity来解决此问题:
<style name="profile_editor_theme">
<item name="android:endYear">2025</item>
<item name="android:startYear">1910</item>
</style>
Run Code Online (Sandbox Code Playgroud)
虽然我的活动中的这个主题具有在我的测试设备上限制DatePickerDialog的预期效果(Galaxy选项卡和原始的Motorola Droid),但它显然对用户没有影响.
这个问题在100%的时间内对我们的用户进行了重复,但在我们自己的设备上正常运行.
任何人都可以解释可能导致这种情况的原因以及如何解决这个问题?
谢谢!
我有一个关于DatePickerDialog显示的问题.
我想用"HoloDialog"主题创建日期选择器对话框,如下所示:
DatePickerDialog dpd = new DatePickerDialog(this, android.R.style.Theme_Holo_Dialog, reservationDate, 2014, 1, 1);
Run Code Online (Sandbox Code Playgroud)
然后我会看到这个结果:

如您所见,对话框显示为"两个边框".
我想创建与此处显示的相同的对话框,但是有一个边框.可能吗?
我有一个TextInputEditText周围包裹TextInputLayout,如谷歌建议做:https://developer.android.com/reference/android/support/design/widget/TextInputLayout.html
但是,我的TextInputEditText上设置了一个OnClickListener,因此当用户点击它时,可以弹出一个DatePickerDialog.
我的问题是,事实上,在第一次点击时除了提示标签移动到TextInputEditText之外没有任何反应.第二次点击时,会显示DatePickerDialog.
我怎么能在第一次点击时显示DatePickerDialog?
在TextInutLayout而不是TextInputEditText上设置onClickListener不起作用.有人有想法吗?
android android-layout android-edittext datepickerdialog android-textinputlayout