鸿蒙道
2017-02-04 02:41
采纳率: 95.2%
浏览 1.1k
已采纳

我想实现一个EditText点击后出现一个日历然后返回值到EditText显示?

android 开发:我想实现一个EditText点击后出现一个日历然后返回值到EditText显示?
给一个代码示例谢谢,急用

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 三丿虎 2017-02-04 03:14
    已采纳
        Calendar calendar = Calendar.getInstance();
        final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        new DatePickerDialog(this, DatePickerDialog.THEME_HOLO_LIGHT, new DatePickerDialog.OnDateSetListener() {
            @SuppressLint("DefaultLocale")
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                String tm = String.format("%02d", (monthOfYear + 1));
                String td = String.format("%02d", dayOfMonth);
                String date = (year + "-" + tm + "-" + td);
                etStart.setText(date);
            }
        }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
    
    已采纳该答案
    打赏 评论
  • emdd2016 2017-02-04 06:03

    用popwindow, view 自己布局【用一个DatePicker或自定义即可】

    打赏 评论
  • lixuce1234 2017-02-06 02:05

    给Editext设置监听,判断是否获取焦点,获取焦点的时候弹出日历控件

    打赏 评论
  • FoxconnPter 2017-02-07 02:56

    StringBuilder str = new StringBuilder("");//这个设置成员变量
    prviate Edittext queryDateTo;
    初始化控件 findbyid.....之类的。
    我的这种方法就是点击EditText弹出时间选择框 包括年月日时分秒,你可以自己删改。
    然后选择时间,显示在编辑框上,第二次显示的时候会清除之前显示的时间。
    我也是菜鸟,所以代码比较啰嗦,但是我平常就是这样实现这个功能的.

    //设置结束时间
    queryDateTo.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View source) {

                Calendar c = Calendar.getInstance();
    

    // 直接创建一个DatePickerDialog对话框实例,并将它显示出来
    Dialog dateDialog = new DatePickerDialog(ReportSearch.this,
    // 绑定监听器
    new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker dp, int year,
    int month, int dayOfMonth) {
    sts.append(year + "-" + (month + 1) + "-"
    + dayOfMonth + " ");
    Calendar time = Calendar.getInstance();
    Dialog timeDialog = new TimePickerDialog(
    ReportSearch.this,
    // 绑定监听器
    new TimePickerDialog.OnTimeSetListener() {
    @Override
    public void onTimeSet(
    TimePicker tp,
    int hourOfDay, int minute) {
    sts.append(hourOfDay + ":"

                                                        + minute);
    
    
                                                queryDateTo.setText(sts);
                                                sts.replace(0, sts.length(), "");
    
    
                                            }
                                        }
    

    // 设置初始时间
    , time.get(Calendar.HOUR_OF_DAY), time
    .get(Calendar.MINUTE)
    // true表示采用24小时制
    , true);
    timeDialog.setTitle("请选择日期");
    timeDialog.show();

                            }
                        }
    

    // 设置初始日期
    , c.get(Calendar.YEAR), c.get(Calendar.MONTH), c
    .get(Calendar.DAY_OF_MONTH));
    dateDialog.setTitle("请选择日期");
    dateDialog.show();
    }
    });

                ![图片说明](https://img-ask.csdn.net/upload/201702/07/1486436170_718.gif)
    
    打赏 评论
  • FoxconnPter 2017-02-07 03:14
    打赏 评论
  • FoxconnPter 2017-02-07 03:16

    https://img-ask.csdn.net/upload/201702/07/1486436170_718.gif
    你打开这个GIF图片。。。我上面的回答中贴了。。可是GIF图片不显示。。你自己复制到浏览器打开了,那是我的效果图

    打赏 评论

相关推荐 更多相似问题