Форум программистов, компьютерный форум CyberForum.ru

Ввод числа - Android

Восстановить пароль Регистрация
 
_Night_Scream_
55 / 55 / 6
Регистрация: 08.08.2013
Сообщений: 514
09.02.2016, 12:34     Ввод числа #1
Добрый день.

Задача у меня специфическая.
По клику на button надо показать цифровую клавиатуру с полем ввода.
По кнопке "Готово" (на клавиатуре) мне нужно обработать число и если оно не подходит высветить Toast, но при этом клавиатуру не закрывать.
Задача с одной стороны простая, но что то сегодня торможу, подскажите куда смотреть.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
не спать!
1881 / 1615 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
09.02.2016, 12:40     Ввод числа #2
надо свою рисовать или можно обойтсь EditText с inputType="number" ?
Ханасака
10 / 10 / 0
Регистрация: 12.07.2013
Сообщений: 143
09.02.2016, 12:41     Ввод числа #3
А если в onCreate() добавить
Java
1
2
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
inputManager.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
а закрывать потом программно?
_Night_Scream_
55 / 55 / 6
Регистрация: 08.08.2013
Сообщений: 514
09.02.2016, 13:02  [ТС]     Ввод числа #4
Паблито, EditText как такового нет, есть button.
Ханасака, не понял как вызвать в onClick это?
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
09.02.2016, 13:08     Ввод числа #5
_Night_Scream_, и куда вводит пользователь?
Причём тут onClick?
Паблито
не спать!
1881 / 1615 / 500
Регистрация: 12.05.2014
Сообщений: 5,836
Завершенные тесты: 1
09.02.2016, 13:21     Ввод числа #6
показываю принцип
допустим et - э то наш Edittext, а btn - это кнопка
я проверял во фрагменте, поэтому если делать это в активити то там надо убрать вызовы getContext() и getActivity()

код, где то в onCreateView фрагмента или onCreate() активити
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
        final EditText et = (EditText) view.findViewById(R.id.number);
        et.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_DONE) {
                    if (Math.random() > 0.5)
                        Toast.makeText(getContext(), "Подходит", Toast.LENGTH_SHORT).show();
                    else Toast.makeText(getContext(), "Не подходит", Toast.LENGTH_SHORT).show();
                    et.setVisibility(View.GONE);
                    InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.toggleSoftInput(InputMethodManager.RESULT_HIDDEN, 0);
                }
                return false;
            }
        });
 
        view.findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                et.setVisibility(View.VISIBLE);
                et.requestFocus();
                InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
            }
        });
без всяких оптимизаций и рефакторинга, только показать принцип

и разметка
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="LOL"
        android:id="@+id/btn"/>
 
    <EditText
        android:visibility="gone"
        android:id="@+id/number"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:imeOptions="actionDone"
        android:inputType="number" />
_Night_Scream_
55 / 55 / 6
Регистрация: 08.08.2013
Сообщений: 514
09.02.2016, 13:23  [ТС]     Ввод числа #7
CoolMind,
По клику на button надо показать цифровую клавиатуру с полем ввода.
По кнопке "Готово" (на клавиатуре) мне нужно обработать число и если оно не подходит высветить Toast, но при этом клавиатуру не закрывать.
Нет editText, только button.
А ввод значения в переменную int, которая в этом классе.
Паблито
09.02.2016, 13:25
  #8

Не по теме:

после последнего сообщения я начинаю думать что надо лепить свой велосипед, с кнопками типа как в терминалах
наверняка такие есть на гитхабе, поэтому я такое писать и тестить не стану )

_Night_Scream_
55 / 55 / 6
Регистрация: 08.08.2013
Сообщений: 514
09.02.2016, 13:27  [ТС]     Ввод числа #9
Паблито, да в том то и дело, велосипед свой не хочу, пытаюсь найти что то умное.
В первый раз столкнулся с таким, поэтому тоже в ступоре.
Паблито
09.02.2016, 13:30
  #10

Не по теме:

боже
там писанины на 40 минут от силы - лаяут с кнопками цифр, кнопка сброса и кнопка ОК
+ текствью в которое будет добавляться по одному символу при нажатиях на нопки
+ слушатель на ОК который выводит тост и делает проверки

_Night_Scream_
55 / 55 / 6
Регистрация: 08.08.2013
Сообщений: 514
09.02.2016, 13:43  [ТС]     Ввод числа #11
Паблито, не, это самый край, должно быть проще.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2016, 16:32     Ввод числа
Еще ссылки по теме:

Android Андроид ввод данных
Android Удобный ввод гос номера
Ввод русских букв в эмуляторе Genymotion Android
Как сделать возможным ввод дробного числа Android
Android Ввод в edittext double

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

Или воспользуйтесь поиском по форуму:
_Night_Scream_
55 / 55 / 6
Регистрация: 08.08.2013
Сообщений: 514
10.02.2016, 16:32  [ТС]     Ввод числа #12
Еще вопрос о вводе числа.
Я использую PreferenceFragment для показа настроек.
В PreferenceFragment метод addPreferencesFromResource берет указанный layout.
В layout использую EditTextPreference.

В результате всего этого получаю экран со строками, после нажатия на строку появляется диалог с EditText для изменения числа. Всё стандартно.

Есть ли возможность сразу показывать EditText'ы списком с оглавлением на фрагменте, минуя dialog?
Хочу исключить диалог чтобы лишний раз не нажимать пальцем по строке, а сразу на ввод и появлялась клава.

Можно конечно набросать свой фрагмент со своими EditText, но тогда надо писать механизм записи настроек в файл, а в PreferenceFragment всё готово.
Yandex
Объявления
10.02.2016, 16:32     Ввод числа
Ответ Создать тему
Опции темы

Текущее время: 07:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru