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

Мне просто интересно, какое решение будет лучшим для получения ввода текста от пользователя в PlayN. Я не нашел ничего, что я мог бы использовать для достижения этого, я думаю, что лучшим решением будет визуализация чего-то вроде входных данных HTML для написания текста, но это будет не так просто, потому что нам нужно иметь возможность использовать в примере виртуальная клавиатура от андроида (на платформе андроида) и обычная клавиатура на бэкенде HTML. Даже тогда я думаю, что будет очень сложно (или невозможно) вызвать клавиатуру Android в игре...

Я думаю о создании виджета в библиотеке пользовательского интерфейса TriplePlay (потому что я буду использовать его), но это закончится рендерингом виртуальной клавиатуры на экране для ввода данных пользователем.. кнопки от а до я и т.д...

Интересно, есть ли лучшее решение для этого, или мне нужно реализовать что-то вроде того, что я написал выше (например, виджет TriplePlay)?


person btk    schedule 24.02.2012    source источник


Ответы (1)


Уже существует виджет Tripleplay для приема ввода текста под названием Field.

Однако он очень примитивен и пока не работает на мобильных платформах (будет работать на Android-устройстве с аппаратной клавиатурой). Нам нужно предоставить API в PlayN для отображения виртуальной клавиатуры, но до тех пор у него нет возможности вызвать отображение виртуальной клавиатуры.

Однако я не рекомендую использовать это для существенного ввода текста. Он не поддерживает (и никогда не будет) поддержку вырезания и вставки, языковые методы ввода или любые другие чрезвычайно сложные функции, которые пользователи ожидают от ввода текста.

Я хотел бы добавить API в PlayN, например:

Keyboard.requestTextInput(String label, Callback<String> callback)

который вызовет виртуальную клавиатуру с прикрепленным (собственным) текстовым полем и позволит пользователю ввести одну строку текста, используя все механизмы поддержки собственного ввода текста платформы. Это позволит им копировать и вставлять и использовать языковые методы ввода, а также обеспечит удобный для них опыт работы на рассматриваемой платформе.

Если вашей игре требуется более сложный ввод текста (например, интерфейс чата или возможность делать страницы заметок), вам, вероятно, придется создать отдельный интерфейс для каждой платформы, которую вы хотите поддерживать, используя встроенные виджеты редактирования многострочного текста, а затем подключите их к своей игре PlayN. Это будет сложнее, чем можно описать в простом ответе SO, поэтому вам придется провести некоторое исследование и узнать, как PlayN управляет отображением на каждом из бэкэндов, которые вы хотите поддерживать.

person samskivert    schedule 27.02.2012
comment
спасибо за повтор ... я просто пробую поле, но оно не работает даже в JAVA ... когда я нажимаю и пытаюсь напечатать что-то, оно не отображается ... мне интересно, есть ли у них какие-либо планы для вас предложение для виртуальной клавиатуры с API для PlayN Keyboard.requestTextInput(метка строки, обратный вызов Callback‹String›) и если да... когда это будет доступно... Я думаю, что такое удобство использования будет необходимо.. Многие игры будут использовать текст входные данные от пользователей .. например, имя персонажа и многое другое ... - person btk; 01.03.2012
comment
извините, он хорошо работает с аппаратной клавиатурой (просто забудьте добавить keyboard().setListener(klistener);).. но мой дальнейший вопрос открыт (о виртуальной клавиатуре с API для PlayN :) - person btk; 01.03.2012