【问题标题】:How to prevent the user selecting past date in Android date picker如何防止用户在 Android 日期选择器中选择过去的日期
【发布时间】:2018-04-20 12:46:22
【问题描述】:

您好,我正在制作一个约会应用程序,我使用 firebase 数据库 作为我的后端。

我想限制用户选择以前的日期。我得到了解决方案 from here

但我不知道将代码放在哪里才能使其工作。我把我的代码放在下面请指导我...

另一个问题是,如果用户 更改系统日期和时间 datepicker 中的日期也会更改 有什么方法可以限制用户选择当前日期或仅明天的日期,而不是昨天的日期。

例如。获取 ServerValue.TIMESTAMP 并将其转换为日期,然后比较所选日期和从 TIMESTAMP 获得的日期。

Appointment.java

/**
 * A simple {@link Fragment} subclass.
 */
public class Appointment extends Fragment {

    @BindView(R.id.apointFirstName)
    EditText apointFirstName;
    @BindView(R.id.apointLastName)
    EditText apointLastName;
    @BindView(R.id.apointPhoneNumber)
    EditText apointPhoneNumber;
    @BindView(R.id.apointEmail)
    EditText apointEmail;
    @BindView(R.id.apointDate)
    EditText apointDate;
    @BindView(R.id.availTimeSpinner)
    Spinner availTimeSpinner;
    @BindView(R.id.bookAppointmentButton)
    Button book_btn;
    @BindView(R.id.cancelAppointmentButton)
    Button cancel_btn;

    Calendar mCal;
    int day, month, year;
    String mCurrentDate;
    String fname,lname,email;
    int phone;
    String timestamp = String.valueOf(ServerValue.TIMESTAMP);

    public Appointment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_appointment, container, false);
        ButterKnife.bind(this,view);


        setCurrentDate();

        apointDate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                selectDate();
            }
        });
        return view;
    }

    // set the current date on the text view
    private void setCurrentDate() {

        mCal = Calendar.getInstance();

        day = mCal.get(Calendar.DAY_OF_MONTH);
        month = mCal.get(Calendar.MONTH);
        year = mCal.get(Calendar.YEAR);

        month = month +1;

        mCurrentDate = (day+"/"+month+"/"+year);

    }

    //open the datepickerdialogue
    private void selectDate() {
        if(getActivity()!=null) {
            DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                    month = month + 1;
                    apointDate.setText(dayOfMonth + "/" + month + "/" + year);
                }
            }, year, month, day);


            datePickerDialog.show();
        }
    }

}

【问题讨论】:

    标签: android android-calendar android-datepicker


    【解决方案1】:

    添加下线用户不能选择旧数据..

    datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
    

    【讨论】:

      【解决方案2】:

      使用 datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000); 禁用在日期选择器中粘贴日期

      试试这个

      private void selectDate() {
              if(getActivity()!=null) {
                  DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
                      @Override
                      public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                          month = month + 1;
                          apointDate.setText(dayOfMonth + "/" + month + "/" + year);
                      }
                  }, year, month, day);
      
                  datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
                  datePickerDialog.show();
              }
          }
      

      用户更改系统日期和时间 datepicker 中的日期也更改了有什么方法可以限制用户选择当前日期或明天的

      查看此链接

      1. Get Real Time - Not Device Set Time in android
      2. Android - Get current time without dependency on device's clock
      3. How to get device independent local date and time Android

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 2014-08-18
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多