2016-11-28 15 views
0

Я хочу знать событие в разделе блоков, используя которое введенное текстовое значение может быть получено без отправки формы через кнопку.Как получить значение текстового поля в App Inventor без отправки формы?

Предположим, пользователь вводит текст в мобильном телефоне через клавиатуру и вводит ввод. В этом случае я хочу, чтобы какое-то событие вызывало и вводило значение, введенное пользователем.

Имеются 2 события, такие как lostfocus и gotfocus. Будут ли эти работы? Или есть ли другой хороший подход для получения текстового значения при нажатии ввода?

ответ

0

К сожалению, такого события, как OnEnterPressed, нет в MIT App Inventor, и события LostFocus и GotFocus не будут работать в этом случае.

Что вы сейчас можете сделать, это

  1. использовать кнопку и использовать Button.Click событие, или
  2. создать свою собственную клавиатуру, смотрите также this example

В настоящее время существует ограничение для App Inventor extensions, который может использоваться только для невидимых компонентов. Позже, как только видимые компоненты выполнимы, вы можете написать собственное расширение для текстового поля и добавить событие самостоятельно.


Редактировать относительно новый вопрос в комментариях о различных экранах:

использования различных экранов мудро
Перед началом создания другого экрана, сначала вы должны думать о это действительно необходимо? Смотрите также Building apps with many screens и SteveJG's post about advantages/disadvantages, потому что только в одном экране вы можете также использовать вертикальные механизмы для имитации различных экранов, просто установить меры к видимым = истина/ложь, как нужно ...

+0

благодарит за ваш ответ @ Taifun. Если я создаю пользовательскую клавиатуру, как я могу добавить ее на многие экраны, которые у меня есть. Например, у меня 10 страниц, и я хочу, чтобы пользователь вводил текст на всех экранах? Я не хочу повторять код. – bhaskar

+0

На самом деле это новый вопрос, вы можете * задать новый вопрос * в следующий раз ... теперь см. Мой обновленный ответ и прочитайте [Что делать, когда кто-то отвечает? мой вопрос?] (https://stackoverflow.com/help/someone-answers) – Taifun

0

Вы можете вставить Clock компонент который контролирует TextBox1.Text. Когда он запускается, он проверяет, изменился ли номер TextBox1.Text и сохранил его для переменной. Когда он снова запускается, он сравнивает переменную с TextBox1.Text. После того, как пользователь закончит печатать, переменная и TextBox1.Text будут равны, а затем вы можете инициировать событие, подобное тому, которое вы использовали, когда пользователь нажал Enter.

Надеюсь, это поможет!