Android中DatePicker的使用

首先在界面布局chose_date.xml中的代码,此界面只有这一个控件,一般都是别的界面的点击事件跳转到此界面

    <DatePicker
        android:id="@+id/datePicker2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:headerBackground="@color/colorPrimaryDark" />

Date.java中的使用方法

public class Date implements DatePicker.OnDateChangedListener {

    private DatePicker datePicker;
    private AlertDialog ad;
    private String dateTime;
    private String initDate;
    private Activity activity;

    public Date(Activity activity, String initDate) {
        this.activity = activity;
        this.initDate = initDate;
        this.dateTime=initDate;
    }

    private void init(DatePicker datePicker){
        Calendar calendar = Calendar.getInstance();
        if (!(null == initDate || "".equals(initDate))) {
            calendar = this.getCalendar(initDate);
        } else {
            initDate = calendar.get(Calendar.YEAR) + "年"
                    + calendar.get(Calendar.MONTH) + "月"
                    + calendar.get(Calendar.DAY_OF_MONTH) + "日 ";
        }
        datePicker.init(calendar.get(Calendar.YEAR),
                calendar.get(Calendar.MONTH)-1,
                calendar.get(Calendar.DAY_OF_MONTH), this);
    }
    //将字符串YYYY-MM-DD变成年月日
    private Calendar getCalendar(String initDate) {
        Calendar calendar = Calendar.getInstance();
        String s[]=initDate.split("-");
        calendar.set(Integer.valueOf(s[0]),Integer.valueOf(s[1]),Integer.valueOf(s[2]));
        return calendar;
    }
    @Override
    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        Calendar calendar = Calendar.getInstance();

        calendar.set(datePicker.getYear(), datePicker.getMonth(),
                datePicker.getDayOfMonth());

        dateTime = ProduceDao.format.format(calendar.getTime());
        ad.setTitle(dateTime);
    }
    public AlertDialog datePicKDialog(final TextView inputDate) {
        LinearLayout dateTimeLayout = (LinearLayout) activity
                .getLayoutInflater().inflate(R.layout.chose_date, null);
        datePicker = (DatePicker) dateTimeLayout.findViewById(R.id.datePicker2);
        init(datePicker);
        ad = new AlertDialog.Builder(activity)
                .setTitle(initDate)
                .setView(dateTimeLayout)
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        inputDate.setText(dateTime);
                    }
                })
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        inputDate.setText(initDate);
                    }
                }).show();
        return ad;
    }

}


点击跳转事件

shangshiTime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Date(EditProduce.this,String.valueOf(shangshiTime.getText()))
                        .datePicKDialog(shangshiTime);



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值