标签: android-datepicker

OnDateSetListener()没有被调用

当我更改日期时,OnDateSetListener()不会被调用。偶数setMinDate(day);行不起作用。我认为由于某种原因DatePickerDialog尚未注册OnDateSetListener()。但无法弄清楚。我已将对话框和侦听器都声明为全局。

private DatePickerDialog datePicker;
private DatePickerDialog.OnDateSetListener dateListener;
Run Code Online (Sandbox Code Playgroud)

代码:

// Create dialogs for datePicker
private void createDatePicker() {

    Calendar calendar = Calendar.getInstance(Locale.getDefault());
    int day = calendar.get(Calendar.DAY_OF_MONTH);
    int month = calendar.get(Calendar.MONTH);
    int year = calendar.get(Calendar.YEAR);

    datePicker = new DatePickerDialog(this, dateListener, year, month, day);
    datePicker.getDatePicker().setMinDate(day);

    dateListener = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            Log.d(TAG, "Date changed.");
        }
    };

}

private void setEditTextListeres() {
        myEditText.setOnFocusChangeListener(new OnFocusChangeListener() { …
Run Code Online (Sandbox Code Playgroud)

android android-datepicker

3
推荐指数
1
解决办法
2741
查看次数

DatePickerDialog.OnDateSetListener在三星设备上没有回调

出于一些奇怪的原因,当我单击正面按钮作为DatePickerDialog的一部分时,作为DateSetListener的一部分的onDateSet方法不会仅在SAMSUNG设备上被调用.

这是我在做的事情:

DateSetListener _datePickerDialogCallback = new DateSetListener();

DatePickerDialog _datePickerDialog = new DatePickerDialog(context, _datePickerDialogCallback, year, month, days);
_datePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, StringUtil.getString(R.string.command_ok), new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface arg0, int arg1) {
      _done = true;
    }

  });

_datePickerDialog.show();



private class DateSetListener implements DatePickerDialog.OnDateSetListener {

  public void onDateSet(DatePicker view, int year, int month, int day) {

    Calendar calendar = Calendar.getInstance();
    calendar.set(year, month, day, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE),
        calendar.get(Calendar.SECOND));

    if (_done) {
      _view.setText(formatDate(calendar.getTime()));
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

关于为什么会发生这种情况的任何建议都将受到赞赏.请.请注意,这仅适用于SAMSUNG DEVICES

android datepicker android-datepicker

3
推荐指数
1
解决办法
6159
查看次数

在MaterialDateTimePicker中禁用每个月的星期日

我正在使用MaterialDateTimePicker.我想禁用每个月的特定工作日(如星期日).它在这篇文章中提到我们可以使用这个库来做到这一点,但how to disable particular weekdays?我当然可以使用可用的短代码来限制月数,但我不想限制几个月的数量,只是从选择中禁用工作日.

public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {

    private TextView dateTextView;
    private CheckBox modeDarkDate;
    private CheckBox vibrateDate;
    private CheckBox dismissDate;
    private CheckBox limitDates;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Find our View instances
        dateTextView = (TextView)findViewById(R.id.date_textview);
        Button dateButton = (Button)findViewById(R.id.date_button);


        modeDarkDate = (CheckBox)findViewById(R.id.mode_dark_date);
        vibrateDate = (CheckBox) findViewById(R.id.vibrate_date);
        dismissDate = (CheckBox) findViewById(R.id.dismiss_date);
        limitDates = (CheckBox) findViewById(R.id.limit_dates);

        // check if picker mode is specified in Style.xml
        modeDarkDate.setChecked(Utils.isDarkTheme(this, modeDarkDate.isChecked())); …
Run Code Online (Sandbox Code Playgroud)

android android-datepicker

3
推荐指数
1
解决办法
4542
查看次数

如何在DatePickerDialog Android中禁用今天日期之后的日期?

我想在DatePickerDialog中禁用今天日期的所有Next(after)日期.

我使用下面的代码来创建DatePickerDialog:

    Calendar calendar = Calendar.getInstance();
    mYear = calendar.get(Calendar.YEAR);
    mMonth = calendar.get(Calendar.MONTH);
    mDay = calendar.get(Calendar.DAY_OF_MONTH);

 //OnDateSetListener
 private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker arg0, int year, int monthOfYear, int dayOfMonth) {
        calendar.set(year, monthOfYear, dayOfMonth);
        String currentDate = date_format.format(calendar.getTime());
        ...
    }
};
 //Create DatePickerDialog here
 protected Dialog onCreateDialog(int id) {
    if (id == 999) {
        DatePickerDialog dpDialog = new DatePickerDialog(getContext(), myDateListener, mYear, mMonth, mDay);

        return dpDialog;
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

请建议我必须做什么来禁用datepicker对话框中的所有先前日期.

android datepicker android-datepicker datepickerdialog android-studio

3
推荐指数
1
解决办法
6152
查看次数

从Android中的DatePickerDialog中删除标题

我想将DatePickerDialog限制为明天的最小值.当我把下面显示的代码放入时,限制就有效了.但是,包含日期的标题文本显示为标题.我怎样才能解决这个问题?

这是我的代码:

 Calendar tempDate = Calendar.getInstance();
 tempDate.add(Calendar.DAY_OF_MONTH, 1);
 toDatePickerDialog.getDatePicker().setMinDate(tempDate.getTimeInMillis());
Run Code Online (Sandbox Code Playgroud)

和图像:

一个DatePickerDialog,显示标题为jue,29 de dec. de 2016

android android-datepicker

3
推荐指数
1
解决办法
1545
查看次数

如何从 MaterialDatePicker 获取日期?

我的应用程序使用 MaterialDatePicker。我想创建一个类,除其他数据外,还将存储 MaterialDatePicker 中的日期。\n我有一些问题:

\n
    \n
  1. 如果日期应该可以更改,那么在课堂上保存日期的最佳方法是什么?
  2. \n
  3. 如何从日期选择器材料中获取日期?\n这是我使用日期选择器材料的活动。通过单击复选框,我想将所有这些信息(包括日期)保存到类对象中。
  4. \n
\n

这是我与 MaterialDatePicker 的活动代码

\n
public class NewEvent extends AppCompatActivity {\nTextInputEditText etDate, etEventId;\nAutoCompleteTextView etType, etNotif;\nMaterialToolbar toolbarNE;\nSharedPreferences sharedPreferences;\n\nprivate static final String TAG = "myLogs";\nstatic final String newEv = "newEv";\n@Override\nprotected void onCreate(Bundle savedInstanceState) {\n    super.onCreate(savedInstanceState);\n    setContentView(R.layout.new_event);\n    final FragmentManager fragmentManager = getSupportFragmentManager();\n    final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();\n\n    final FirstFragment fragment1 = new FirstFragment();\n\n    etDate = findViewById(R.id.etDate);\n    etType = findViewById(R.id.etType);\n    etNotif = findViewById(R.id.etNotif);\n    etEventId = findViewById(R.id.etEventId);\n    toolbarNE = findViewById(R.id.menuNewEvent);\n\n    toolbarNE.setOnMenuItemClickListener(new MaterialToolbar.OnMenuItemClickListener() {\n        @Override\n …
Run Code Online (Sandbox Code Playgroud)

java android android-datepicker material-components-android

3
推荐指数
1
解决办法
3254
查看次数

如何将当前日期与日期选择器的用户输入日期进行比较

我试图限制日期和时间.我希望如果用户尝试将日期设置为小于当前日期,那么它应该显示警报,同样的事情是按时完成.我使用的日期和时间选择和我onDateSetListeneronTimeSetListener情况如下:

DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            dateTime.set(Calendar.YEAR, year);
            dateTime.set(Calendar.MONTH, monthOfYear);
            dateTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            update_date_display();



            // ---for setting notification----

            day = dayOfMonth;
            month = monthOfYear;
            AddEditTask.year = year;

            c.set(year, month, day);
        }
    };

    protected void update_date_display() {

        et_task_date.setText(formatDate.format(dateTime.getTime()));
    }

    TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

            dateTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            dateTime.set(Calendar.MINUTE, minute);
            update_time_display();

            // ---for setting notification---

            hour …
Run Code Online (Sandbox Code Playgroud)

android date android-datepicker android-timepicker

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

日期验证距离android当前日期不到18年

我必须在Date字段中进行验证,该验证必须比当前日期少18年,否则必须显示错误.

public static boolean dobdateValidate(String date) {
        boolean result = false;
        SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
        try {
            Date parseddate = sdf.parse(date);
            Calendar c2 = Calendar.getInstance();
            c2.add(Calendar.DAY_OF_YEAR, -18);
            Date dateObj2 = new Date(System.currentTimeMillis());
            if (parseddate.before(c2.getTime())) {
                result = true;
            }

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }    
        return result;    
    }
Run Code Online (Sandbox Code Playgroud)

java android date android-datepicker

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

Android获取当前月份

在我的应用程序中,我想只获得当前月份(不需要年和日).例.这个月是一月.显示db中与1月相关的列表视图数据.所有12个月.用户也可以从对话框中选择任意月份.我还在对话框中列出了几个月来选择用户想要的月份.

问题

1.获取当前月份,然后从db填充数据(例如,当前月份是1月,然后从db填充1月数据,如果当前月份是4月,则从数据填充4月数据)每个月.

问题

1.如何知道当前月份?

2.如何填充与当月相关的数据?

当前代码:

public class MonthlyFragment extends Fragment {
    private int monthField;

    public MonthlyFragment() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_monthly, container, false);
        //    String currentDateString = DateFormat.getDateInstance().format(new Date());

        Button button = (Button) rootView.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showAlertDialog1();
            }
        });

        return rootView;
    }

    private void showAlertDialog1() {
        final String[] Selected = new String[]{"January", "February", "March", "April",
                "May", "June", …
Run Code Online (Sandbox Code Playgroud)

android android-datepicker

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

如何为Android中的片段内的textview显示或设置datepicker对话框?

我是Android的绝对初学者.我正在尝试使用datepicker对话框在片段内部设置文本字段的文本.

这是活动内部的文本字段的片段

public class CreateTaskFragment extends Fragment{
    private Button saveBtn;
    private EditText tfDescription,tfDate;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.create_task,container,false);

        tfDescription = (EditText)view.findViewById(R.id.tf_task_description);
        tfDate = (EditText)view.findViewById(R.id.tf_task_date);
        tfDate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                DialogFragment pickerFragment = new SelectDateFragment();
                pickerFragment.show(getFragmentManager(),"DatePicker");
            }
        });

        saveBtn = (Button)view.findViewById(R.id.btn_save_task);
        saveBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                saveTask();
            }
        });

        return view;
    }

    public void saveTask()
    {
        String description = tfDescription.getText().toString();
        String date = …
Run Code Online (Sandbox Code Playgroud)

android android-datepicker android-fragments

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