标签: datepickerdialog

DatePickerDialog错误地强制执行1970年1月1日的最小日期

我们有一名成员报告他无法在我们的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%的时间内对我们的用户进行了重复,但在我们自己的设备上正常运行.

任何人都可以解释可能导致这种情况的原因以及如何解决这个问题?

我已就此事向Google提出此错误.

谢谢!

java android datepicker datepickerdialog

9
推荐指数
1
解决办法
4088
查看次数

你如何从DatePickerDialog获得DatePicker?

我有一个弹出android.app.DatePickerDialog的活动.

DatePickerDialog dialog =  new DatePickerDialog(this, startDateSetListener, start_cal.get(Calendar.YEAR), start_cal.get(Calendar.MONTH), start_cal.get(Calendar.DATE));
Run Code Online (Sandbox Code Playgroud)

我想从DatePickerDialog获取DatePicker视图,以便我可以设置最小和最大日期.API参考说有一个方法getDatePicker,自API 1以来一直存在,但它无效,我的ide不喜欢它.

DatePicker picker = dialog.getDatePicker();
Run Code Online (Sandbox Code Playgroud)

"对于DatePickerDialog类型,方法getDatePicker()未定义"

任何人都知道创建的方法是什么API,或者我如何到达DatePicker来编辑最小/最大日期?

我使用的是API 7,平台2.1.

android datepicker datepickerdialog

9
推荐指数
1
解决办法
6876
查看次数

在DatePickerDialog中使用DatePicker setMaxDate()时出现NullPointerException

我正在使用DatePickerDialog,我正在尝试设置最小和最大日期,以便用户只能选择前24小时或接下来24小时内的日期.

这是代码.(请注意,如果在Android 3.0或更高版本上运行,它只会尝试设置最小/最大范围.)

private void showDatePickerDialog() {
    DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {
            calendar.set(Calendar.YEAR, year);
            calendar.set(Calendar.MONTH, monthOfYear);
            calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            onCalendarChanged();
        }
    };

    DatePickerDialog dialog = new DatePickerDialog(this,
                                                   listener,
                                                   calendar.get(Calendar.YEAR),
                                                   calendar.get(Calendar.MONTH),
                                                   calendar.get(Calendar.DAY_OF_MONTH));
    setDatePickerDialogRange(dialog);
    dialog.show();
}

@SuppressLint("NewApi")
private void setDatePickerDialogRange(DatePickerDialog dialog) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        DatePicker picker = dialog.getDatePicker();
        long oneDayMilliseconds = 24 * 60 * 60 * 1000;
        long nowMilliseconds = new Date().getTime();
        long minDate = nowMilliseconds …
Run Code Online (Sandbox Code Playgroud)

android datepickerdialog

8
推荐指数
2
解决办法
4177
查看次数

无法使我的DatePickerDialog以编程方式使用微调器样式

我正在用一个DialogFragment打开一个DatePickerDialog

public class DatePickerFragment extends DialogFragment{

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    // Use the current date as the default date in the picker
    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);


    // Create a new instance of DatePickerDialog and return it
    DatePickerDialog DatePickerDialog = new DatePickerDialog(getActivity(), (ProfileCreationActivity)getActivity(), year, month, day);
    return DatePickerDialog;
}
Run Code Online (Sandbox Code Playgroud)

我正在看日历外观,我更喜欢旋转外观.

我试过了:

datePickerDialog.getDatePicker().setCalendarViewShown(false);
Run Code Online (Sandbox Code Playgroud)

datePickerDialog.getDatePicker().setLayoutMode(1);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

请注意,我希望微调器查找一个活动,但我希望其他活动的日历视图.所以我无法改变整个应用程序的风格.我需要一个活动的自定义样式.

android datepicker android-datepicker datepickerdialog

8
推荐指数
2
解决办法
1万
查看次数

如何防止在DatePickerDialog中选择传递日期(setMinDate无法按预期工作)

我发现DatePicker(Dialog)非常令人困惑......当设置setMinDate()时...显示的日历真的"视觉上禁用"传递日期(使它们变灰)但这些日期仍然可供选择!我想用户阻止这样做.理想的方法是使通过的日期不可点击/不可选.如果不可能,至少要抓住这个事件(哪一个?onDateChanged?,onSelected?...)并保留一条消息并禁用OK按钮,直到用户选择一个有效的日期.

不幸的是,datepicker(对话框)没有onChangedListener(实际上它有但没有setter).所以我得到的唯一事件是按下OK按钮.为时已晚.

这是我的代码

    dateTextView = (TextView) view.findViewById(R.id.createOrder_date);
    dateTextView.setText(R.string.createOrder_time_now);
    dateTextView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            final Calendar calendarNow = Calendar.getInstance();
            final int yearNow = calendarNow.get(Calendar.YEAR);
            final int monthNow = calendarNow.get(Calendar.MONTH);
            final int dayNow = calendarNow.get(Calendar.DAY_OF_MONTH);

            DatePickerDialog datePickerDialog = new DatePickerDialog(CreateOrderFragment.this.getActivity(), new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    Calendar calendar = Calendar.getInstance();
                    calendar.set(year, monthOfYear, dayOfMonth);

                    if (calendar.before(calendarNow)) {
                        Toast.makeText(CreateOrderFragment.this.getActivity(), getResources().getString(R.string.createOrder_datePicker_selectFutureDate), Toast.LENGTH_SHORT).show();
                        view.updateDate(yearNow, monthNow, dayNow);
                        calendar = calendarNow;
                    }

                    SimpleDateFormat sdf = …
Run Code Online (Sandbox Code Playgroud)

android android-datepicker datepickerdialog android-5.0-lollipop

7
推荐指数
1
解决办法
2500
查看次数

如何在Android日期选择器对话框中禁用某些日期?

我使用的默认Android DatePickerDialog包含android.widget.DatePicker.

有人知道如何禁用或使某些日期无法选择吗?

我知道DatePicker允许setMinDate(),setMaxDate()但它不允许在中间禁用特定日期.

例如,在这张照片上想要禁用日期18,26等:

在此输入图像描述

android android-datepicker datepickerdialog

7
推荐指数
1
解决办法
6978
查看次数

在API级别24中不推荐使用DatePicker上的setSpinnersShown和setCalendarViewShown

我试图通过以编程方式更改和值来切换到DatePicker中的日历到微调器模式,但在API 24中,Android Studio显示警告.setSpinnersShownsetCalendarViewShowndeprecated

如果没有API API中的XML设置值,我可以通过编程方式将DatePicker从日历设置为spinner模式的替代方法是什么.谢谢.

mobile android datepicker datepickerdialog

7
推荐指数
1
解决办法
1993
查看次数

android 致命异常:打开 DatePickerDialog 时出现 java.lang.NullPointerException

单击时我有一个 EditText,它应该打开 DatePickerDialog。但在某些设备中,它会随机崩溃。在 Crashlytics 中,它显示它在一些 android 版本 8 和一些版本 9 的设备中崩溃。请告诉我我做错了什么。

对于 DatePicker,我正在设置用户可以选择的最小和最大日期。

DatePickerDialog dialog = new DatePickerDialog(mContext, date, myCalendar
                    .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                    myCalendar.get(Calendar.DAY_OF_MONTH));

            SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
            inputFormat.setTimeZone(TimeZone.getTimeZone("IST"));
            Date date = new Date();
            try {
                date = inputFormat.parse("2019-01-13T13:00:00Z"); // this is getting from server
            } catch (ParseException e) {
                e.printStackTrace();
            }

            Calendar minCal = Calendar.getInstance();
            minCal.setTime(date);
            dialog.getDatePicker().setMinDate(minCal.getTimeInMillis());
            dialog.getDatePicker().setMaxDate(System.currentTimeMillis());
            // dialog.getDatePicker().setCalendarViewShown(false);
            dialog.show();
Run Code Online (Sandbox Code Playgroud)

这是我收到的崩溃消息。

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.widget.SimpleMonthView.getMonthHeight()' on a null object reference
       at android.widget.DayPickerView.onLayout(DayPickerView.java:230) …
Run Code Online (Sandbox Code Playgroud)

android android-datepicker datepickerdialog

7
推荐指数
1
解决办法
1997
查看次数

如何在BaseAdapter中使用DatePickerDialog

我正在和BaseAdapter班级一起工作.我想在其中显示DatePickerDialog.当我使用时,showDialog(DATE_DIALOG_ID); 我收到错误.

请指导我这个.

package com.OrganisemeePhone.adapter;

import java.util.ArrayList;
import java.util.Vector;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.OpenableColumns;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.DatePicker;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.CompoundButton.OnCheckedChangeListener;




public class TaskFilterAdapter extends BaseAdapter {
    String date, month, year,setdueDate;
    //int dateFormat;
    DatePickerDialog.OnDateSetListener dateListener;

    int myYear, myMonth, myDay;
    int dateFormat; …
Run Code Online (Sandbox Code Playgroud)

android baseadapter datepickerdialog

6
推荐指数
1
解决办法
4274
查看次数

如何在不使用DatePickerDialog的情况下使用OnDateChangedListener,OnDateSetListener?

我希望能够在用户开始更改时检测到datepicker上的更改.但是,我不想使用datrpickerdialog.有没有人知道为什么在更改datepicker上的日期时onDateSet(DatePicker arg0,int arg1,int arg2,int arg3)不会触发?

我对此表示高度赞赏.干杯

这是我的代码的简化版本:

public class AddItem extends Activity  implements OnDateChangedListener,OnDateSetListener{

DatePicker start ;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.entryelements);
    start = (DatePicker) findViewById(R.id.start);

@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
        int dayOfMonth) {

    // TODO Auto-generated method stub
    Toast.makeText(getApplicationContext(),
            " thiv view"+year,
            Toast.LENGTH_LONG).show();
    Log.v("indatechange", "ok");

}

@Override
public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
    // TODO Auto-generated method stub
    Toast.makeText(getApplicationContext(),
            " thiv view"+arg0,
            Toast.LENGTH_LONG).show();
    Log.v("indatechange", "ok");
}
Run Code Online (Sandbox Code Playgroud)

}

android datepicker datepickerdialog

6
推荐指数
1
解决办法
1万
查看次数