Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
goodi_tomsk
4 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 84
1

Обработка нажатия EditText

14.03.2017, 16:29. Просмотров 990. Ответов 5
Метки нет (Все метки)

Необходимо реализовать поля ввода дат для задания периода.
Так как надо по дизайну чтобы подсказка всплывала как в TextInputLayout, поэтому использую EditText.
Обработка нажатия EditText

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

Обработка нажатия EditText

Не могу разобраться как это решить.
И поле FROM у меня сразу активно, хотелось бы до первого нажатия его не активировать. Подскажите?

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<android.support.design.widget.TextInputLayout
            android:id="@+id/input_to"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="16dp"
            android:layout_marginLeft="16dp"
            android:layout_marginRight="16dp"
            android:layout_marginTop="4dp"
            android:orientation="horizontal"
            android:visibility="visible"
            app:layout_constraintLeft_toLeftOf="@+id/guideline2"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/choosePerson">
 
            <EditText
                android:id="@+id/to"
                style="@style/Widget.AppCompat.EditText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ems="10"
                android:hint="@string/hint_to"
                android:inputType="date"
                tools:layout_editor_absoluteX="8dp"
                tools:layout_editor_absoluteY="0dp" />
        </android.support.design.widget.TextInputLayout>
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//EditText для ввода дат
        from = (EditText) view.findViewById(R.id.from);
        to = (EditText) view.findViewById(R.id.to);
        from.setOnClickListener(chooseDateClick);
        to.setOnClickListener(chooseDateClick);
 
//обработка нажатия EditText для выбора даты
    public View.OnClickListener chooseDateClick = new View.OnClickListener() {
        @Override
        public void onClick(final View view) {
            Calendar calendar = Calendar.getInstance();
            final SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
            chooseDate = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) {
                    Calendar newCalendar = Calendar.getInstance();
                    newCalendar.set(year, monthOfYear, dayOfMonth);
                    switch (view.getId()) {
                        case R.id.from:
                            Toast.makeText(getActivity(), "нажат фром", Toast.LENGTH_SHORT);
                            from.setText(dateFormat.format(newCalendar.getTime()));
                            break;
                        case R.id.to:
                            to.setText(dateFormat.format(newCalendar.getTime()));
                            break;
                    }
                }
            }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
            chooseDate.show();
        }
    };
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2017, 16:29
Ответы с готовыми решениями:

Динамическое создание edittext и обработка данных из edittext
Здравствуйте, мне нужна помощь, у меня есть таблица, где динамически создаются edittext: for (int ...

Отлавливание нажатия на edittext
package com.calendar2.calendar2; import android.support.v7.app.AppCompatActivity; import...

EditText обработчик нажатия на Enter
Всем привет! Не могу понять, почему не работает код: final EditText editText =...

Отключить перескакивание между edittext после нажатия "готово"
После нажатия на кнопку готово происходит заполнение второго edittext, третьего и.т.д. А нужно...

Ввод в один EditText и авто-вычисление в двух других EditText
Всем привет. Есть три поля EditText,виртуальные клавиатуры у всех заблокированы,а ввод чисел в...

5
demixdn
310 / 255 / 79
Регистрация: 31.10.2016
Сообщений: 619
14.03.2017, 16:34 2
Лучший ответ Сообщение было отмечено goodi_tomsk как решение

Решение

Java
1
2
3
4
5
6
7
8
fieldDate.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    showDateDialog();
                }
            }
        });
0
goodi_tomsk
4 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 84
14.03.2017, 16:36  [ТС] 3
а как обработать 2 таких поля?
0
demixdn
310 / 255 / 79
Регистрация: 31.10.2016
Сообщений: 619
14.03.2017, 16:40 4
goodi_tomsk, просто сделайте по аналогии. не setOnClickListener, а setOnFocusChangeListener
0
goodi_tomsk
4 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 84
14.03.2017, 17:03  [ТС] 5
ок, пасип. попробую!

Добавлено через 21 минуту
а как сделать чтобы при переходе на вкладку ни одно из EditText не находилось в фокусе?
0
goodi_tomsk
4 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 84
16.03.2017, 08:23  [ТС] 6
мой вопрос: как сделать чтобы при переходе на вкладку ни одно из EditText не находилось в фокусе?
мой ответ: android:focusableInTouchMode="true" для лэйаута
0
16.03.2017, 08:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2017, 08:23

EditText смещается вниз при вводе текста, который занимает объём больше, чем EditText
EditText сещается вниз при вводе текста который занимает обём больше чем EditText. Как устранить?

Обработка нажатия на RadioButton
Постигаю андроид. Не могу разобраться со свичем. EditText принимает число, сохранил его, дальше...

Обработка длительного нажатия
Добрый День! Пишу на libGdx и столкнулся с проблемой: нужно считывать время нажатия на экран. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru