Android显示datepicker(结束日期)大于开始日期? [英] Android show the datepicker(end date) greater than the start date?

查看:260
本文介绍了Android显示datepicker(结束日期)大于开始日期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我想在从开始日期选择的日期之后显示日期选择器(结束日期).结束日期选择器将在起始日期之后显示日期.结束日期将在开始日期之后和之前开始日期显示日期选择器日期不会显示.我该怎么办? 我正在尝试的是

Hello guys i want to show the date picker(end date) after the date select from the start date.The end date picker will display date after the from date.End date will display date picker after the from date and before from date will not gonna show .what i got to do? What i am trying is

       fromdate = (EditText) findViewById(fromDate);
       todate = (EditText) findViewById(R.id.todate);
       fromdate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showTruitonDatePickerDialog(view);
        }
    });
    todate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showToDatePickerDialog(view);
        }
    });
    }
public void showTruitonDatePickerDialog(View v) {
    DialogFragment newFragment = new DatePickerFragment();
    newFragment.show(getSupportFragmentManager(), "datePicker");
   }
 public void showToDatePickerDialog(View v) {
    DialogFragment newFragment = new ToDatePickerFragment();
    newFragment.show(getSupportFragmentManager(), "datePicker");
}
 public static class DatePickerFragment extends DialogFragment implements
        DatePickerDialog.OnDateSetListener {

    @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
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        // Do something with the date chosen by the user

        fromdate.setText(day + "/" + (month + 1) + "/" + year);
           }   }

public static class ToDatePickerFragment extends DialogFragment implements
       DatePickerDialog.OnDateSetListener {

    @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
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }
   public void onDateSet(DatePicker view, int year, int month, int day) {
        // Do something with the date chosen by the user
        view.setMinDate(fromDate);
        todate.setText(day + "/" + (month + 1) + "/" + year); } }

推荐答案

     fromdate = (EditText) findViewById(fromDate);
    todate = (EditText) findViewById(R.id.todate);
    fromdate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showTruitonDatePickerDialog(view);
        }
    });
    todate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showToDatePickerDialog(view);
        }
    });
}
public void showTruitonDatePickerDialog(View v) {
    DialogFragment newFragment = new DatePickerFragment();
    newFragment.show(getSupportFragmentManager(), "datePicker");
}

public void showToDatePickerDialog(View v) {
    DialogFragment newFragment = new ToDatePickerFragment();
    newFragment.show(getSupportFragmentManager(), "datePicker");
}

public static class DatePickerFragment extends DialogFragment implements
        DatePickerDialog.OnDateSetListener {
    @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);
        DatePickerDialog datePickerDialog;
        datePickerDialog = new DatePickerDialog(getActivity(),this, year, 
        month,day);
        return datePickerDialog;
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        // Do something with the date chosen by the user
        fromdate.setText(day + "/" + month  + "/" + year);
    }

}

public static class ToDatePickerFragment extends DialogFragment implements
        DatePickerDialog.OnDateSetListener {
   // Calendar startDateCalendar=Calendar.getInstance();
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
          String getfromdate = fromdate.getText().toString().trim();
          String getfrom[] = getfromdate.split("/");
        int year,month,day;
             year= Integer.parseInt(getfrom[2]);
             month = Integer.parseInt(getfrom[1]);
            day = Integer.parseInt(getfrom[0]);
        final Calendar c = Calendar.getInstance();
        c.set(year,month,day+1);
        DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(),this, year,month,day);
       datePickerDialog.getDatePicker().setMinDate(c.getTimeInMillis());
        return datePickerDialog;
    }
    public void onDateSet(DatePicker view, int year, int month, int day) {

        todate.setText(day + "/" + month  + "/" + year);
    }
}

我选择开始日期为.... 1/09/2017 然后我打开它显示的结束日期.... 2/09/2017

I choose a start date as....1/09/2017 Then i open a end date it displays from....2/09/2017

这篇关于Android显示datepicker(结束日期)大于开始日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆