Урок 59. Диалоги. DatePickerDialog

Обсуждение уроков
Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение altwin » 15 фев 2015, 12:52

Iren писал(а):А как внести ограничения на выбор даты? Чтобы нельзя было выбрать дату ранее текущей и запретить вращать год?
[syntax=java5]date.getDatePicker().setMaxDate(System.currentTimeMillis());[/syntax]

[syntax=java5]Calendar calendar = Calendar.getInstance();
int currentYear = calendar.get(Calendar.YEAR);
int currentMonth = calendar.get(Calendar.MONTH);
int currentDay = calendar.get(Calendar.DAY_OF_MONTH);

DatePickerDialog datePickerDialog = new DatePickerDialog(this, listener, currentYear, currentMonth, currentDay);
DatePicker dp = datePickerDialog.getDatePicker();
dp.setMinDate(calendar.getTimeInMillis());
return datePickerDialog;[/syntax]
с годом к примеру можно просто выбрать диапазон:
[syntax=java5]DatePickerDialog dp = new DatePickerDialog(this,
datePickerListener, year, month, day);


long maxDate;
Date newDate = c.getTime();
dp.getDatePicker().setMinDate(newDate.getTime());
dp.getDatePicker().setMaxDate(maxDate);[/syntax]
Изображение

Eagle
Сообщения: 13
Зарегистрирован: 28 фев 2015, 12:54

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение Eagle » 01 мар 2015, 13:10

Вставил код из "Урок 58" и теперь надо вставить код из урока 59 как их совместить?
т.е ответе:

Экран main.xml:

в конце какой строки начать вставлять код (код с урока 59) и с какой строки его брать

И в Код MainActivity.java:

в конце какой строки начать вставлять код (код с урока 59) и с какой строки его брать

Или так долго наверно никто не ответит, легче просто позвонить по скайпу и сказать куда вставлять код

Помогите пожалуйста

Мой скайп: eagle_bratsk - всё сделаю быстренько у вас займёт менее минуты.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение doter.ua » 01 мар 2015, 13:54

Eagle писал(а):Вставил код из "Урок 58" и теперь надо вставить код из урока 59 как их совместить?
т.е ответе:

Экран main.xml:

в конце какой строки начать вставлять код (код с урока 59) и с какой строки его брать

И в Код MainActivity.java:

в конце какой строки начать вставлять код (код с урока 59) и с какой строки его брать

Или так долго наверно никто не ответит, легче просто позвонить по скайпу и сказать куда вставлять код

Помогите пожалуйста

Мой скайп: eagle_bratsk - всё сделаю быстренько у вас займёт менее минуты.
Кодеры конечно много гуглят и копипастят, но они хотябы понимают что ищут\копируют.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Eagle
Сообщения: 13
Зарегистрирован: 28 фев 2015, 12:54

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение Eagle » 01 мар 2015, 14:11

doter.ua писал(а):
Eagle писал(а):Вставил код из "Урок 58" и теперь надо вставить код из урока 59 как их совместить?
т.е ответе:

Экран main.xml:

в конце какой строки начать вставлять код (код с урока 59) и с какой строки его брать

И в Код MainActivity.java:

в конце какой строки начать вставлять код (код с урока 59) и с какой строки его брать

Или так долго наверно никто не ответит, легче просто позвонить по скайпу и сказать куда вставлять код

Помогите пожалуйста

Мой скайп: eagle_bratsk - всё сделаю быстренько у вас займёт менее минуты.
Кодеры конечно много гуглят и копипастят, но они хотябы понимают что ищут\копируют.
Помогите пожалуйста в скайпе займёт менеее минуты

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение doter.ua » 01 мар 2015, 14:29

Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Eagle
Сообщения: 13
Зарегистрирован: 28 фев 2015, 12:54

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение Eagle » 01 мар 2015, 17:27

это же платно?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение doter.ua » 01 мар 2015, 21:02

Eagle писал(а):это же платно?
Ты о чем?
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Eagle
Сообщения: 13
Зарегистрирован: 28 фев 2015, 12:54

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение Eagle » 02 мар 2015, 12:16

doter.ua писал(а):
Eagle писал(а):это же платно?
Ты о чем?
скачал архив, скажите пожалуйста куда его разархивировать ? или что?

Eagle
Сообщения: 13
Зарегистрирован: 28 фев 2015, 12:54

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение Eagle » 04 мар 2015, 07:19

ответе пожалуйста КТОНИТЬ

Eagle
Сообщения: 13
Зарегистрирован: 28 фев 2015, 12:54

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение Eagle » 04 мар 2015, 19:04

мм?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение doter.ua » 04 мар 2015, 19:11

Eagle писал(а):мм?
Ты на стековерфлоу первый раз зашел? первый пост это вопрос, смотри ниже ответы, там есть примеры.
http://stackoverflow.com/a/14254351/3737860
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Eagle
Сообщения: 13
Зарегистрирован: 28 фев 2015, 12:54

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение Eagle » 04 мар 2015, 19:19

doter.ua писал(а):
Eagle писал(а):мм?
Ты на стековерфлоу первый раз зашел? первый пост это вопрос, смотри ниже ответы, там есть примеры.
http://stackoverflow.com/a/14254351/3737860
ну во первых первый раз а во вторых в конце его вопроса ссылка на архив, а в остальном я разобрался просто спросил как ег опроект открыть у себя

Iren
Сообщения: 13
Зарегистрирован: 08 фев 2015, 13:55

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение Iren » 12 мар 2015, 17:39

Подскажите, пожалуйста, можно как-нибудь русифицировать барабан? И вместо системного белого фона поставить свой и вместо голубых полосок - красные? Если возможно, буду благодарна за помощь.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение doter.ua » 12 мар 2015, 17:50

Iren писал(а):Подскажите, пожалуйста, можно как-нибудь русифицировать барабан? И вместо системного белого фона поставить свой и вместо голубых полосок - красные? Если возможно, буду благодарна за помощь.
Скорее всего язык от настроек системы зависит. Со стилями посложнее http://stackoverflow.com/a/20291416
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Lordis
Сообщения: 1
Зарегистрирован: 29 апр 2015, 16:11

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение Lordis » 29 апр 2015, 16:19

Подскажите, пожалуйста, Андроид Студио ругается на устаревший код... Где я могу найти информацию о том, что нужно использовать вместо зачеркнутого кода? Спасибо.
123.png
123.png (134.44 КБ) 7807 просмотров

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение doter.ua » 29 апр 2015, 16:52

Lordis писал(а):Подскажите, пожалуйста,
Первая ссылка по запросу "android showdialog deprecated":
http://stackoverflow.com/a/13990289
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
TheCoder
Сообщения: 16
Зарегистрирован: 23 апр 2015, 17:23

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение TheCoder » 17 авг 2015, 16:05

Всем привет. Такой вопрос: как установить в сам picker дату, которую пользователь выбрал ранее? Сначала я устанавливаю в picker текущую дату, а при повторном вызове picker-а есть необходимость установить в него ранее выбранную дату, а не текущую. Возможно, вопрос глупый, но решения я не нашел. Заранее спасибо

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

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение Foenix » 17 авг 2015, 16:11

сохранять нужно куда-то, например в sharedPreferences (есть урок)
R.id.team

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

Аватара пользователя
TheCoder
Сообщения: 16
Зарегистрирован: 23 апр 2015, 17:23

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение TheCoder » 17 авг 2015, 16:52

Foenix писал(а):сохранять нужно куда-то, например в sharedPreferences (есть урок)
Спасибо, хотел использовать его, но думал есть другие варианты

dmitry_n
Сообщения: 7
Зарегистрирован: 06 июн 2015, 13:47

Re: Урок 59. Диалоги. DatePickerDialog

Сообщение dmitry_n » 29 авг 2015, 13:16

Может быть, пригодится кому-то. Вместо deprecated-методов нужно использовать DialogFragment, вот код (объединил дату и время в одном уроке):

activity_main.xml

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <TextView
        android:text="Press n choose date"
        android:layout_width="wrap_content"
        android:id="@+id/tvDate"
        android:textSize="22sp"
        android:onClick="onDateClick"
        android:clickable="true"
        android:layout_height="wrap_content" />
    <TextView
        android:text="Press n choose time"
        android:id="@+id/tvTime"
        android:textSize="22sp"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:layout_below="@id/tvDate"
        android:onClick="onTimeClick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
MainActivity.java

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

public class MainActivity extends Activity {

    static TextView tvDate;
    static TextView tvTime;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvDate = (TextView)findViewById(R.id.tvDate);
        tvTime = (TextView)findViewById(R.id.tvTime);
    }

    public void onTimeClick(View v) {
        DialogFragment dFrag = new TimePickerFragment();
        dFrag.show(getFragmentManager(), "timePicker" );
    }

    public void onDateClick(View v) {
        DialogFragment dFrag = new DatePickerFragment();
        dFrag.show(getFragmentManager(), "datePicker");
    }

    public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            Calendar calendar = Calendar.getInstance();
            int hour = calendar.get(Calendar.HOUR_OF_DAY);
            int minute = calendar.get(Calendar.MINUTE);
            return new TimePickerDialog(getActivity(), this, hour, minute, true);
        }

        @Override
        public void onTimeSet(TimePicker timePicker, int i, int i2) {
            tvTime.setText("Time is " + i + ":" + i2);
        }
    }

    public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            Calendar calendar = Calendar.getInstance();
            int year = calendar.get(Calendar.YEAR);
            int month = calendar.get(Calendar.MONTH);
            int day = calendar.get(Calendar.DAY_OF_MONTH);
            return new DatePickerDialog(getActivity(), this, year, month, day);
        }

        @Override
        public void onDateSet(DatePicker datePicker, int i, int i2, int i3) {
            tvDate.setText("Date is " + i3 + "." + (i2+1) + "." + i);
        }
    }
}
Пришлось сделать tvDate и tvTime статическими, так как классы Picker'ы должны быть static тоже

Ответить