Урок 58. Диалоги. TimePickerDialog

Обсуждение уроков
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 58. Диалоги. TimePickerDialog

Сообщение damager82 » 20 фев 2012, 03:00

В этом уроке:

- используем TimePickerDialog

[url=http://www.startandroid.ru/ru/uroki/vse ... l:17et6qx9]Click here to read this article![/url:17et6qx9]
Последний раз редактировалось damager82 08 май 2017, 16:03, всего редактировалось 4 раза.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение KamiSempai » 06 мар 2012, 18:51

Сейчас залез на http://developer.android.com, почитать про showDialog.
Что я там увидел:
This method is deprecated.
Use the new DialogFragment class with FragmentManager instead; this is also available on older platforms through the Android compatibility package.
Оказывается showDialog является "осуждаемым" методом. Гугл предлагает использовать класс DialogFragment, API Leve которого 11 (а это, между прочим, Android 3.0).
Подумал я, подумал, и положил здоровенный болт на советы Гугла.
Собственно говоря, возник вопрос. Во что может вылиться использование "Deprecated" классов и методов?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

яфпкк
Сообщения: 8
Зарегистрирован: 21 фев 2012, 05:59

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение яфпкк » 06 мар 2012, 20:09

KamiSempai писал(а):Во что может вылиться использование "Deprecated" классов и методов?
ну ответ как бы очевиден, после выхода очередной версии андроида, программы, использующие deprecated объекты, перестанут запускаться :(

Аватара пользователя
IlyaZh
Сообщения: 32
Зарегистрирован: 14 июл 2012, 09:52
Откуда: Санкт-Петербург
Контактная информация:

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение IlyaZh » 23 авг 2012, 11:15

А как сделать обработчик для двуx окон? Мне надо чтобы пользователь указывал время начала работы и время окончания работы. Как в обработчике вот отделить иx и записать значения в разные места? Посоветуйте чего. Спасибо

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение damager82 » 29 авг 2012, 16:27

IlyaZh писал(а):А как сделать обработчик для двуx окон? Мне надо чтобы пользователь указывал время начала работы и время окончания работы. Как в обработчике вот отделить иx и записать значения в разные места? Посоветуйте чего. Спасибо
Два диалога, у каждого свой обработчик OnTimeSetListener. Или я не понял вопрос?
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение powercat » 16 сен 2012, 20:13

Хочу диалог выбора времени перед нажатием на выход.
Вот в таком виде не отображается

Код: Выделить всё

    		case R.id.btnOut:
    			showDialog(REMIND_TIME_DIALOG);
    			Intent PlantService=new Intent(this,MyService.class);
    			PlantService.putExtra("pathTo", GlobalData.pathTo);
    			PlantService.putExtra("remindTimeH",myHour);
    			PlantService.putExtra("remindTimeM",myMinute);
    			startService(MyService);
    			finish();
    		break;
А вот в таком отображается

Код: Выделить всё

             case R.id.btnOut:
    			showDialog(REMIND_TIME_DIALOG);
    			//Intent PlantService=new Intent(this,MyService.class);
    			//PlantService.putExtra("pathTo", GlobalData.pathTo);
    			//PlantService.putExtra("remindTimeH",myHour);
    			//PlantService.putExtra("remindTimeM",myMinute);
    			//startService(MyService);
    			//finish();
    		break;
Когда не отображается, то при использовании дебагера при проходе строки с диалогом проходит примерно полсекунды, но сам диалог мелькнул и пропал.
Как сделать, чтобы от отобразился, когда за ним идут следующие действия?

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение powercat » 18 сен 2012, 13:32

Хм...неужели у всех есть задержка до ожидания выбора пользователем и только у меня нет? (((

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение powercat » 19 сен 2012, 12:09

Проблема решена

Василь
Сообщения: 4
Зарегистрирован: 06 авг 2012, 23:29

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение Василь » 23 окт 2012, 23:38

Можна как-то задать размер???
уж очень большой получается

Artemko
Сообщения: 26
Зарегистрирован: 16 июл 2012, 15:09

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение Artemko » 18 янв 2013, 11:45

Как брать время из TimePicker'a в там формате: "HH:mm"? проблема такая, напрbмер время 09:03, а в TextView показывает 9:3, тоесть без нулей, это как-то некрасиво выглядит)

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение rezak90 » 18 янв 2013, 20:18

у него есть методы:
Integer getCurrentHour()
Integer getCurrentMinute()
R.id.team
Политика на форуме запрещена

rwivan
Сообщения: 2
Зарегистрирован: 21 янв 2013, 06:26

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение rwivan » 21 янв 2013, 06:37

Всем, здравствуйте!
Есть проблема:
Я использую свои кнопки в диалоге TimePickerDialog

Код: Выделить всё

    TimePickerDialog tpd = new TimePickerDialog(activity, new OnTimeSetListener()
    {
      public void onTimeSet(TimePicker view, int hourOfDay, int minute)
      {
        Log.d("myLogs", "Hour = " + Integer.toString(hourOfDay) + " Minute = " + Integer.toString(minute));
      }
    }, c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE), DateFormat.is24HourFormat(activity));
    tpd.setButton(TimePickerDialog.BUTTON_POSITIVE, activity.getString(R.string.next),
        new OnClickListener()
        {
          public void onClick(DialogInterface dialog, int which)
          {
          }
        });
    tpd.setButton(TimePickerDialog.BUTTON_NEUTRAL, activity.getString(R.string.yes),
        new OnClickListener()
        {
          public void onClick(DialogInterface dialog, int which)
          {
          }
        });
    tpd.setButton(TimePickerDialog.BUTTON_NEGATIVE, activity.getString(R.string.cancel),
        new OnClickListener()
        {
          public void onClick(DialogInterface dialog, int which)
          {
          }
        });
Проблема в том что метод onTimeSet не вызывается вообще.
Я думаю что самое логичное - это в обработчике BUTTON_POSITIVE вызывать какой-нибудь метод который бы инициировал onTimeSet, но что-то никак не могу найти как это сделать.

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение damager82 » 24 янв 2013, 14:06

rwivan писал(а):Я думаю что самое логичное - это в обработчике BUTTON_POSITIVE вызывать какой-нибудь метод который бы инициировал onTimeSet, но что-то никак не могу найти как это сделать.
Вызывайте

Код: Выделить всё

tpd.onClick(dialog, which);
в вашем обработчике
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Digetix
Сообщения: 117
Зарегистрирован: 12 окт 2012, 15:31

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение Digetix » 09 май 2013, 17:59

А как сделать, чтоб при нажатии на Отмена время, которое мы задали, осталось? То есть время по умолчанию например, 08:00, пользователь хотел сменить, меняет, но передумал и нажал Отмена. Снова открыл этот диалог, а там чтоб было снова 08:00. На вашем примере время сохраняется при нажатии на Отмена
rezak90 писал(а):у него есть методы:
Integer getCurrentHour()
Integer getCurrentMinute()
Эти методы всё равно дают время 8 часов 8 минут

Digetix
Сообщения: 117
Зарегистрирован: 12 окт 2012, 15:31

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение Digetix » 09 май 2013, 19:01

В общем сделал так:

Код: Выделить всё

          OnTimeSetListener myCallBack = new OnTimeSetListener() {
		    public void onTimeSet(TimePicker tpd, int hourOfDay, int minute) {
		    	   myHourStart = hourOfDay;
		    	   myMinuteStart = minute;

		    	   String formattedTime = "";
		    	   int hourInt = tpd.getCurrentHour();
		    	   String sHour = "00";
		    	   if(hourInt < 10){
		    	    sHour = "0"+hourInt;
		    	   } else {
		    	    sHour = String.valueOf(hourInt);
		    	   }

		    	   int minuteInt = tpd.getCurrentMinute();
		    	   String sMinute = "00";
		    	   if(minute < 10){
		    	    sMinute = "0"+minuteInt;
		    	   } else {
		    	    sMinute = String.valueOf(minuteInt);
		    	   }

		    	   formattedTime = sHour+":"+sMinute;
		        }
		     };

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение rezak90 » 09 май 2013, 19:28

есть же форматеры, зачем руками делать?
R.id.team
Политика на форуме запрещена

Digetix
Сообщения: 117
Зарегистрирован: 12 окт 2012, 15:31

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение Digetix » 10 май 2013, 12:35

Какие? Пробовал это

Код: Выделить всё

        SimpleDateFormat format = new SimpleDateFormat("HH:mm");
        String formatted = format.format(date);
Не срабатывал

JeyAr
Сообщения: 1
Зарегистрирован: 29 сен 2013, 13:51

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение JeyAr » 29 сен 2013, 13:57

Подскажите плз, совсем мало опыта и знаний.

Задача такая: используя TimePickerDialog сравнить введённые данные с текущим временем и если они будут равны вывести сообщение на экран.
То есть, как я понимаю, мне требуется использовать System.currentTimeMillis() для получения текущего времени. Чтобы сравнить их с введёнными в TimePickerDialog, нужно данные о времени в часах и минутах из TimePicker конвертировать в миллисекунды.

Как это сделать?

Спасибо.

shidiv
Сообщения: 14
Зарегистрирован: 03 дек 2013, 14:44

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение shidiv » 13 дек 2013, 12:27

Народ, помогите найти общий язык со стандартным хелпом. Как мне увидеть все возможные константы для метода:
showDialog(int id);

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 58. Диалоги. TimePickerDialog

Сообщение Foenix » 13 дек 2013, 12:35

http://developer.android.com
ТОЛЬКО на этом сайте. Плюс учебник английского.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить