Android показывает клавиатуру и клавиши регистрации - PullRequest
0 голосов
/ 04 марта 2012

У меня есть приложение, которое представляет собой вид с поверхности.Все, что я делаю, это рисую вещи на поверхности и все такое.Итак, одна функциональность, которую я хочу, - если пользователь касается угла поверхности, он показывает клавиатуру, а затем он может печатать на ней.Обратите внимание, что в моем приложении нигде нет текстов редактирования или текстовых полей.Как вызвать всплывающую клавиатуру и как получить все клавиши, которые нажимает пользователь?Я не хочу ключи обязательно, я просто хочу строку, которую они напечатали.Как мне сделать это?

1 Ответ

0 голосов
/ 04 марта 2012

Это не тривиальная задача.

Прежде всего, вам нужно переопределить метод onCreateInputConnection ()

@Override 
public InputConnection onCreateInputConnection(EditorInfo outAttrs) { 
    return new MyInputConnection(this, surfaceView, false);    
}

Затем вам нужно реализовать этот класс входного соединения, производный от BaseInputConnection .

class MyInputConnection extends BaseInputConnection{

    private MyActivity activity;

    public MyInputConnection(MyActivity activity, View targetView, boolean fullEditor)
    {
       super( targetView, fullEditor );
       mActivity = activity;
    }

    public boolean commitText(CharSequence text, int newCursorPosition){ 
        myActivity.drawText((String) text); 
        return true; 
    } 

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

...