如何限制日期选择器从今天开始在android中启动

时间:2014-08-16 05:58:27

标签: android datepicker

我在我的活动中有两个textViews,它显示from和两个日期,现在我在textView的click事件上放了一个datepicker对话框,我想要的是,from textView datepicker应该只以当前日期开始,并且“要textView“必须以”来自textView“的值开头,意味着”To textView“的值必须大于”From“..请帮帮我,我的代码如下: 代码

public class AddBookingpopupActivity extends Activity {
    Spinner spr_dest;
    TextView tv_from, tv_to, tv_cancel, tv_add;
    JSONObject jsenb;
    ArrayList<HashMap<String, String>> dest;
    DestAdapter adapter;
    StringEntity se;
    public static final String[] MONTHS = { "Jan", "Feb", "Mar", "Apr", "May",
            "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
    private ProgressDialog pDialog;
    private Calendar cal;
    private int dy;
    String city, city_id;
    private int month;
    private int year;
    int flag = 0;
    String fn, ln, number, mob, src, email;
    String reqUrl;
    protected void onCreate(Bundle savedInstanceState) {
        /*
         * if (Build.VERSION.SDK_INT < 13) {
         * setTheme(android.R.style.Theme_Holo_Light); } else {
         * setTheme(android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); }
         */
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.activity_new_book);
        init();
    tv_from.setOnClickListener(new OnClickListener() {

            @SuppressWarnings("deprecation")
            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                flag = 1;
                showDialog(0);
            }
        });
        tv_to.setOnClickListener(new OnClickListener() {

            @SuppressWarnings("deprecation")
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                flag = 2;
                showDialog(0);
            }
        });
    }
@SuppressLint("InlinedApi")
    @Override
    @Deprecated
    protected Dialog onCreateDialog(int id) {
        return new DatePickerDialog(this,
                android.R.style.Theme_Holo_Light_Dialog_NoActionBar,
                datePickerListener, year, month, dy);

    }

    public DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int selectedYear,
                int selectedMonth, int selectedDay) {
            if (flag == 1) {
                tv_from.setText(selectedYear + "/" + (selectedMonth + 1) + "/"
                        + selectedDay);
            } else if (flag == 2) {

                tv_to.setText(selectedYear + "/" + (selectedMonth + 1) + "/"
                        + selectedDay);
            }

        }
    };

    void init() {

        dest = new ArrayList<HashMap<String, String>>();
        dest = Const.dest;
        spr_dest = (Spinner) findViewById(R.id.spr_dest);
        tv_from = (TextView) findViewById(R.id.tv_from);
        tv_to = (TextView) findViewById(R.id.tv_to);
        tv_cancel = (TextView) findViewById(R.id.tv_cancel);
        tv_add = (TextView) findViewById(R.id.tv_add);
        adapter = new DestAdapter(AddBookingpopupActivity.this, dest);
        spr_dest.setAdapter(adapter);
        cal = Calendar.getInstance();
        year = cal.get(Calendar.YEAR);
        month = cal.get(Calendar.MONTH) + 1;
        dy = cal.get(Calendar.DATE);
        tv_to.setText(year + "/" + month + "/" + dy);
        tv_from.setText(year + "/" + month + "/" + dy);
    }

1 个答案:

答案 0 :(得分:0)

您是否尝试过setMinDate()

From Docs

  

setMinDate(long minDate):设置此DatePicker支持的最小日期   自1970年1月1日00:00:00起在getDefault()时区中的毫秒数