Как установить значение EditText как 1:00 вечера или 8:00 утра? - PullRequest
0 голосов
/ 23 декабря 2011

Я использую этот код, чтобы получить время от Time Picker.,.

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
        case TIME_DIALOG_ID:
            return new TimePickerDialog(this,mTimeSetListener, Calendar.HOUR, Calendar.MINUTE, false);
    }
    return null;
}

private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            reminderSetTime.setText(""+hourOfDay+":"+minute+"");
            Toast.makeText(ImportantDateReminderActivity.this, "Time is="+hourOfDay+":"+minute, Toast.LENGTH_SHORT).show();
        }
    };

static final int TIME_DIALOG_ID = 0;

И для отображения TimePicker я использую следующий код:

    case R.id.reminderTime:
            showDialog(TIME_DIALOG_ID);
            break;

При этом я не получаю правильное значение времени.Я хочу значение, например, 1:00 вечера и 10:00 утра, но я не получаю PM / AM, и если время больше 12, то я получаю 13,14,,как фигуравместо этого я хочу цифру от 1 до 12.

Так как установить это значение ??Спасибо.

Ответы [ 3 ]

2 голосов
/ 23 декабря 2011
private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            mHour = hourOfDay;
            mMinute = minute;
            if(mHour==12)
                btnFromTime.setText(new StringBuilder().append("12").append(":").append(pad(minute)+" PM"));
        else
            updateTimeDisplay();
        }
    };

это работает для меня ...

и используйте это

private void updateTimeDisplay() {

        try {
            Format formatter;
            SimpleDateFormat df = new SimpleDateFormat("hh:mm");
            Date d = df.parse(mHour + ":" + mMinute);
            Calendar gc = new GregorianCalendar();
            gc.setTime(d);
            gc.add(Calendar.HOUR, 0);
            Date d2 = gc.getTime();
            formatter = new SimpleDateFormat("hh:mm a");
            String time = formatter.format(d2);

            btnFromTime.setText(time);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
1 голос
/ 23 декабря 2011

Лучшая практика для Android - делать все, что захочет пользователь;что установлено в настройках Android:

Как получить выбранный пользователем формат даты в Android?

Проверьте TIME_12_24

Ответьте на свой вопрос,Вы можете использовать класс DateFormat для достижения того, что вы хотите

1 голос
/ 23 декабря 2011

Вы пробовали: TimePicker.setIs24HourView(false)?

...