Как я могу избежать использования людьми других символов, кроме тех, которые я поддерживаю в текстовом поле? - PullRequest
0 голосов
/ 08 октября 2019

Я хочу поддерживать только следующие символы ascii в моем приложении для iOS / Android:

 <!--
CharacterRegions control what letters are available in the font. Every
character from Start to End will be built and made available for drawing. The
default range is from 32, (ASCII space), to 126, ('~'), covering the basic Latin
character set. The characters are ordered according to the Unicode standard.
See the documentation for more information.
-->
<CharacterRegions>
  <CharacterRegion>
  <Start>&#32;</Start>
  <End>&#512;</End>
  </CharacterRegion>
  <CharacterRegion>
  <!-- Apostrophe 8217 -->
  <Start>&#8216;</Start>
  <End>&#8222;</End>
  </CharacterRegion>
  <CharacterRegion>
  <!-- Currency symbols -->
  <Start>&#8352;</Start>
  <End>&#8378;</End>
  </CharacterRegion>
</CharacterRegions>

Можно ли как-то отключить все другие символы ascii в моем приложении, чтобы люди могли выбирать только поддерживаемые символына их программной клавиатуре в моем приложении?

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

Как я могу избежать использования людьми других символов, кроме тех, которые я поддерживаю в текстовом поле?

Можно ли отключить определенныекнопки программной клавиатуры, чтобы игрок не мог их использовать, или всегда необходимо, чтобы я проверял символы текстового поля, если они поддерживаются после того, как игрок ввел их с помощью программной клавиатуры?

1 Ответ

0 голосов
/ 08 октября 2019

Да, это возможно. Вам просто нужен TextWatcher.

textField.addTextChangedListener(new TextWatcher() {
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    // Check to make sure the new text entered 
    // matches your requirements, otherwise, 
    // remove it from the text field.

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    // TODO Auto-generated method stub
    }

    @Override
    public void afterTextChanged(Editable s) {

    // TODO Auto-generated method stub
    }
});
...