проблемы метода ввода Android - PullRequest
0 голосов
/ 23 июля 2011

Несколько вопросов об андроиде:

Можно ли заменить клавиши на клавиатурах по умолчанию? Например, можно ли заменить точку на цифровой клавиатуре запятой?

Я написал очень простой IME, но не могу установить его в EditText. Я хочу, чтобы один из моих EditText использовал IME, который я написал по умолчанию, а не LatinIME по умолчанию. Это возможно ? Как работает атрибут inputMethod? Я установил полное имя класса IME, но оно вызывает исключение "класс не найден".

Спасибо.

Ответы [ 3 ]

2 голосов
/ 23 июля 2011
Is it possible to replace the keys in default keyboards ? 

Ты не. Пользователи контролируют свое устройство, включая то, какая клавиатура используется.

Но вы можете попробовать сделать несколько методов ввода

Прочтите это руководство: Создание метода ввода

клонировать этот репо: LatinIME

И если вам требуется замена одного символа, вы можете переопределить прослушиватель изменения текста edittext и проверить каждый введенный символ, а если пользователь ввел точку, то замените его запятой как

editText.addTextChangedListener(new TextWatcher(){
        public void afterTextChanged(Editable s) {
           //Check if s contains dot and replace it with comma
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after){}
        public void onTextChanged(CharSequence s, int start, int before, int count){}
    });  

Но этот метод выполняет каждое нажатие клавиши в EditText.

0 голосов
/ 23 июля 2011

Уверен, замена клавиш на клавиатуре по умолчанию невозможна, вам нужно написать собственную замену клавиатуры, как и во всех приложениях клавиатуры.

0 голосов
/ 23 июля 2011

попробуйте переопределить этот метод. Верните другой код ключа и посмотрите результат

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == someKeyCode) {
          //...... button is pressed
        }
        return super.onKeyDown(keyCode, event);
    }
...