【问题标题】:validate a datetime picker验证日期时间选择器
【发布时间】:2016-05-04 12:16:59
【问题描述】:

嘿,伙计们,我有文本视图,当用户点击每个文本视图时,会显示一个日期选择器。我在同一页面上有八个文本视图,它们按时间顺序排列。现在的挑战是我想要第一个日期时间选择器显示从今天开始的日期,下一个日期时间选择器应该只显示大于在第一个文本视图中选择的日期的日期。第三个还应该显示大于在第二个文本视图中选择的日期。我拥有的当前代码是

public class  General extends Fragment {
        TextView onlinee, orientationn, semesterstarts, semesterbreakstarts, semesterbreakends, examstarts, examends, semesterends;
        Button btncalendarr;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_general, container, false);
        onlinee = (TextView)rootView.findViewById(R.id.grestarts);
        orientationn=(TextView) rootView.findViewById(R.id.gorstart);
        semesterstarts= (TextView) rootView.findViewById(R.id.gstart);
        semesterbreakstarts = (TextView)rootView.findViewById(R.id.semstart);
        semesterbreakends = (TextView) rootView.findViewById(R.id.semend);
        examstarts= (TextView) rootView.findViewById(R.id.exstart);
        examends= (TextView) rootView.findViewById(R.id.exend);
        semesterends=(TextView) rootView.findViewById(R.id.semsend);
        btncalendarr = (Button) rootView.findViewById(R.id.btncalendar);
        onlinee.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Calendar mcurrentDate = Calendar.getInstance();
                int mYear = mcurrentDate.get(Calendar.YEAR);
                int mMonth = mcurrentDate.get(Calendar.MONTH);
                int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);
                DatePickerDialog mDatePicker;
                mDatePicker = new DatePickerDialog(General.this.getActivity(), new DatePickerDialog.OnDateSetListener() {
                    public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
                    // TODO Auto-generated method stub
                    /*      Your code   to get date and time    */
                        selectedmonth = selectedmonth + 1;
                        onlinee.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
                    }
                    }, mYear, mMonth, mDay);
                    mDatePicker.setTitle("Select Date");
                    mDatePicker.show();
                 }
        });
        orientationn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

        Calendar mcurrentDate = Calendar.getInstance();
        int mYear = mcurrentDate.get(Calendar.YEAR);

        int mMonth = mcurrentDate.get(Calendar.MONTH);
        int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog mDatePicker;
        mDatePicker = new DatePickerDialog(General.this.getActivity(), new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
            // TODO Auto-generated method stub
                /*      Your code   to get date and time    */
            selectedmonth = selectedmonth + 1;
            orientationn.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
        }
        }, mYear, mMonth, mDay);
        mDatePicker.setTitle("Select Date");
        mDatePicker.show();
            }
        });
        semesterstarts.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        Calendar mcurrentDate = Calendar.getInstance();
        int mYear = mcurrentDate.get(Calendar.YEAR);
        int mMonth = mcurrentDate.get(Calendar.MONTH);
        int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);
        DatePickerDialog mDatePicker;
        mDatePicker = new DatePickerDialog(General.this.getActivity(), new DatePickerDialog.OnDateSetListener() {
            public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
            // TODO Auto-generated method stub
                /*      Your code   to get date and time    */
            selectedmonth = selectedmonth + 1;
            semesterstarts.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
            }
        }, mYear, mMonth, mDay);
        mDatePicker.setTitle("Select Date");
        mDatePicker.show();
        }
                    });
        semesterbreakstarts.setOnClickListener(new View.OnClickListener() {
            @Override
        public void onClick(View view) {
        Calendar mcurrentDate = Calendar.getInstance();
        int mYear = mcurrentDate.get(Calendar.YEAR);
        int mMonth = mcurrentDate.get(Calendar.MONTH);
        int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog mDatePicker;
        mDatePicker = new DatePickerDialog(General.this.getActivity(), new DatePickerDialog.OnDateSetListener() {
            public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
                // TODO Auto-generated method stub
                    /*      Your code   to get date and time    */
                selectedmonth = selectedmonth + 1;
                semesterbreakstarts.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
            }
            }, mYear, mMonth, mDay);
            mDatePicker.setTitle("Select Date");
            mDatePicker.show();
        }
        });
            semesterbreakends.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {
             Calendar mcurrentDate = Calendar.getInstance();
             int mYear = mcurrentDate.get(Calendar.YEAR);
             int mMonth = mcurrentDate.get(Calendar.MONTH);
             int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);

             DatePickerDialog mDatePicker;
             mDatePicker = new DatePickerDialog(General.this.getActivity(), new DatePickerDialog.OnDateSetListener() {
                 public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
                     // TODO Auto-generated method stub
                /*      Your code   to get date and time    */
                     selectedmonth = selectedmonth + 1;
                     semesterbreakends.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
                 }
             }, mYear, mMonth, mDay);
             mDatePicker.setTitle("Select Date");
             mDatePicker.show();
         }
     });
        examstarts.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
            Calendar mcurrentDate = Calendar.getInstance();
            int mYear = mcurrentDate.get(Calendar.YEAR);
            int mMonth = mcurrentDate.get(Calendar.MONTH);
            int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);

            DatePickerDialog mDatePicker;
            mDatePicker = new DatePickerDialog(General.this.getActivity(), new DatePickerDialog.OnDateSetListener() {
                public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
                    // TODO Auto-generated method stub
                        /*      Your code   to get date and time    */
                    selectedmonth = selectedmonth + 1;
                    examstarts.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
                }
            }, mYear, mMonth, mDay);
            mDatePicker.setTitle("Select Date");
            mDatePicker.show();
            }
            });

            examends.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Calendar mcurrentDate = Calendar.getInstance();
                    int mYear = mcurrentDate.get(Calendar.YEAR);
                    int mMonth = mcurrentDate.get(Calendar.MONTH);
                    int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);

                DatePickerDialog mDatePicker;
                mDatePicker = new DatePickerDialog(General.this.getActivity(), new DatePickerDialog.OnDateSetListener() {
                    public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
                        // TODO Auto-generated method stub
                            /*      Your code   to get date and time    */
                        selectedmonth = selectedmonth + 1;
                        examends.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
                    }
                }, mYear, mMonth, mDay);
                mDatePicker.setTitle("Select Date");
                mDatePicker.show();
                }
                    });
                     semesterends.setOnClickListener(new View.OnClickListener() {
                         @Override
                         public void onClick(View view) {
             Calendar mcurrentDate = Calendar.getInstance();
             int mYear = mcurrentDate.get(Calendar.YEAR);
             int mMonth = mcurrentDate.get(Calendar.MONTH);
             int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH);

             DatePickerDialog mDatePicker;
             mDatePicker = new DatePickerDialog(General.this.getActivity(), new DatePickerDialog.OnDateSetListener() {
                 public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) {
                     // TODO Auto-generated method stub
                /*      Your code   to get date and time    */
                     selectedmonth = selectedmonth + 1;
                                 semesterends.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
                             }
                         }, mYear, mMonth, mDay);
                         mDatePicker.setTitle("Select Date");
                         mDatePicker.show();
                     }
                 });
                 btncalendarr.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {

             String online = onlinee.getText().toString();
             String orientation = orientationn.getText().toString();
             String simstart= semesterstarts.getText().toString();
             String simbstart = semesterbreakstarts.getText().toString();
             String sembreak = semesterbreakends.getText().toString();
             String examstart = examstarts.getText().toString();
             String examend = examends.getText().toString();
             String semmend = semesterends.getText().toString();
             if (online.isEmpty()||orientation.isEmpty()||simstart.isEmpty()||simbstart.isEmpty()||sembreak.isEmpty()||examstart.isEmpty()||examend.isEmpty()||semmend.isEmpty()){
                 android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(General.this.getActivity());
                 builder.setMessage("PLEASE FILL ALL FIELDS");
                 builder.setTitle("INPUT ERROR");
                 builder.setPositiveButton(android.R.string.ok, null);
                 android.app.AlertDialog dialog = builder.create();
                 dialog.show();
             }
             else {
                 new BackgroundTask(General.this.getActivity()).execute(online, orientation, simstart, simbstart, sembreak, examstart, examend, semmend);
              //   onlinee.setText("");
              //   orientationn.setText("");
               ///  semesterstarts.setText("");
               //  semesterbreakstarts.setText("");
                // semesterbreakends.setText("");
                /// examstarts.setText("");
                // examends.setText("");
                // semesterends.setText("");
                }
            }
        });
        return rootView;
    }
}

【问题讨论】:

  • 您当前的代码可以实现什么?
  • 我只能用当前代码设置日期随机日期
  • 日期集是格式,比如说,23/5/2016
  • setMinDate() on datepicker to your selected date 以限制 datepicker

标签: java android datetime


【解决方案1】:

我没有清楚地了解您的问题。但是为什么您没有使用this link 设置日期选择器的最小日期。 您可以通过将日期计算为毫秒然后比较两毫秒来做到这一点。 看到这个link

如果我对 lill bit 的理解正确,可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多