проверка даты и времени в Android с использованием прослушивателя edittext

У меня проблема с щелчком по редактированию текста. Я хочу, чтобы диалоговое окно выбора даты и времени появлялось при нажатии на редактирование текста. Пожалуйста, помогите мне.

public  void setstarttime()
    {
        startTimePicker = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            public void onTimeSet(TimePicker picker, int hourOfDay, int minute) {

                //set selected time to calender
                //@author om
                startTimeCal.set(Calendar.MINUTE, minute);
                startTimeCal.set(Calendar.HOUR, hourOfDay);

                mStartTimeHour = hourOfDay;
                mStartTimeMinute = minute;


                String am_pm = (hourOfDay < 12) ? "AM" : "PM";
                starttime.setText(CommonUtil.getFormattedTimeInString(startTimeCal.getTimeInMillis()) + " " + am_pm);
                // timeValidation(TAG_STARTTIME);
            }
        }, mStartTimeHour, mStartTimeMinute, false);
        startTimePicker.show();
    }

person Kumar PG    schedule 14.03.2016    source источник


Ответы (2)


Вы должны реализовать OnFocusChangeListener

    EditText myEditText=......;
    myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus){
            // SHOW YOUR DIALOG
            }
        }
    });
person Omid Heshmatinia    schedule 14.03.2016

Попробуйте со следующим кодом:

timeEditText = (EditText) findViewById(R.id.timeEditText);
timeEditText.setFocusable(false);
timeEditText.setClickable(true);    

timeEditText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Calendar mcurrentTime = Calendar.getInstance();
        final int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
        final int min = mcurrentTime.get(Calendar.MINUTE);
        TimePickerDialog mTimePicker;
        mTimePicker = new TimePickerDialog(v.getContext(), new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                String time = hourOfDay + ":" + minute;
                timeEditText.setText(time);
            }
        }, hour, min, true);

        mTimePicker.setTitle("Select Time");
        mTimePicker.show();
    }
});
person zeeali    schedule 14.03.2016