TimePicker对话框,点击的EditText [英] TimePicker Dialog from clicking EditText

查看:89
本文介绍了TimePicker对话框,点击的EditText的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试着看这个例子不胜枚举,并已经问过这个问题,但没有提交任何code,我已经尽力了。

我已经有了一个datepicker会弹出,当用户点击的EditText字段

  eReminderDate.setOnClickListener(新OnClickListener(){

            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                //要显示当前日期,日期选择器
                日历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 =新DatePickerDialog(AddReminder.this,新OnDateSetListener(){
                    公共无效onDateSet(DatePicker的日期选择器,INT selectedyear,诠释selectedmonth,诠释selectedday){
                        // TODO自动生成方法存根
                    / *您code得到的日期和时间* /
                        selectedmonth = selectedmonth + 1;
                        eReminderDate.setText(+ selectedday +/+ selectedmonth +/+ selectedyear);
                    }
                },mYear,mMonth,MDAY);
                mDatePicker.setTitle(选择日期);
                mDatePicker.show();
            }
        });
 

我试着做了类似的方式TimePicker,但无法得到它的工作。这是我尝试让它工作

  eReminderTime.setOnClickListener(新OnClickListener(){

            @覆盖
            公共无效的onClick(视图v){
                // TODO自动生成方法存根
                日历mcurrentTime = Calendar.getInstance();
                INT小时= mcurrentTime.get(Calendar.HOUR_OF_DAY);
                INT分钟= mcurrentTime.get(Calendar.MINUTE);
                TimePickerDialog mTimePicker;
                mTimePicker =新TimePickerDialog(AddReminder.this,新TimePickerDialog.OnTimeSetListener(){
                    @覆盖
                    公共无效onTimeSet(TimePicker timePicker,诠释selectedHour,诠释selectedMinute){
                        eReminderTime.setText(selectedHour +:+ selectedMinute);
                    }
                },小时,分钟);
                mTimePicker.setTitle(选择时间);
                mTimePicker.show();

            }
        });
 

是不可能做到这一点类似于我这样做是为了DatePicker的方式?

我已经试过甚至只是做一个TimePicker弹出一次的EditText场点击此code。

  eReminderTime.setOnClickListener(新OnClickListener(){

        @覆盖
        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            的ShowDialog(TIME_DIALOG_ID);
        }
    });
 

由于某些原因,当我进到这一点的Andr​​oid Studio中的的ShowDialog被拿下了。

谁能给我,我要去哪里错了提示?或者,我只是将不得不使用一个自定义DialogFragment?

解决方案

  eReminderTime.setText(+ selectedHour +:+ selectedMinute);
 

您一个+之间和选定小时的setText方法只需要一个字符串,所以你需要连接所有的部分(第一引号可能不必要的)。

失踪

  eReminderTime.setOnClickListener(新OnClickListener(){

        @覆盖
        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            日历mcurrentTime = Calendar.getInstance();
            INT小时= mcurrentTime.get(Calendar.HOUR_OF_DAY);
            INT分钟= mcurrentTime.get(Calendar.MINUTE);
            TimePickerDialog mTimePicker;
            mTimePicker =新TimePickerDialog(AddReminder.this,新TimePickerDialog.OnTimeSetListener(){
                @覆盖
                公共无效onTimeSet(TimePicker timePicker,诠释selectedHour,诠释selectedMinute){
                    eReminderTime.setText(selectedHour +:+ selectedMinute);
                }
            },小时,分钟,真); //是24小时时间
            mTimePicker.setTitle(选择时间);
            mTimePicker.show();

        }
    });
 

这应该可以解决你的第二个错误,你没有提供的最后一个参数。 <一href="http://developer.android.com/reference/android/app/TimePickerDialog.html#pubctors">TimePickerDialog构造函数

I've tried looking at numerous examples of this and already asked this question but didn't submit any of the code that I had tried.

I've already got a DatePicker which pops up when the user clicks on the EditText field

eReminderDate.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //To show current date in the datepicker
                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(AddReminder.this, new 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;
                        eReminderDate.setText("" + selectedday + "/" + selectedmonth + "/" + selectedyear);
                    }
                }, mYear, mMonth, mDay);
                mDatePicker.setTitle("Select Date");
                mDatePicker.show();
            }
        });

I've tried doing a TimePicker in a similar way but was unable to get it working. This is my attempt at getting it working

 eReminderTime.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Calendar mcurrentTime = Calendar.getInstance();
                int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
                int minute = mcurrentTime.get(Calendar.MINUTE);
                TimePickerDialog mTimePicker;
                mTimePicker = new TimePickerDialog(AddReminder.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                        eReminderTime.setText( ""selectedHour + ":" + selectedMinute);
                    }
                }, hour, minute);
                mTimePicker.setTitle("Select Time");
                mTimePicker.show();

            }
        });

Is it impossible to do it similar to the way I did it for DatePicker?

I've tried even just making a TimePicker pop up once the EditText field is clicked with this code.

      eReminderTime.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            showDialog(TIME_DIALOG_ID);
        }
    });

For some reason when I entered that into Android Studio the 'showDialog' was scored out.

Can anyone give me tips on where I'm going wrong? Or am I just going to have to use a Custom DialogFragment?

解决方案

eReminderTime.setText( "" + selectedHour + ":" + selectedMinute);

Your missing a + between "" and selected hour, setText methods only take a single string, so you need to concatenate all the parts (the first quotes are likely unnecessary).

eReminderTime.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Calendar mcurrentTime = Calendar.getInstance();
            int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
            int minute = mcurrentTime.get(Calendar.MINUTE);
            TimePickerDialog mTimePicker;
            mTimePicker = new TimePickerDialog(AddReminder.this, new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                    eReminderTime.setText( selectedHour + ":" + selectedMinute);
                }
            }, hour, minute, true);//Yes 24 hour time
            mTimePicker.setTitle("Select Time");
            mTimePicker.show();

        }
    });

That should fix your second error, you weren't providing the last parameter. TimePickerDialog Constructors

这篇关于TimePicker对话框,点击的EditText的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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