Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Android > Создание своей клавиатуры


Автор: math64 18.11.2011, 22:25
Пробую создать свою клавиатуру по примеру SoftKeyboard.
В файле /res/layout/input.xml
Код

<com.example.android.softkeyboard.LatinKeyboardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/keyboard"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

класс com.example.android.softkeyboard.LatinKeyboardView не имеет конструктора по умолчанию
и в моём приложении в классе R отсутствует R.layout.input - но пример без изменений компилируется.
?

Автор: toxx 19.11.2011, 00:56
насколько известно, это по умолчанию вызывается..
Код

public LatinKeyboardView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

и мб импорт R файла из другого места?

Автор: Lols 19.11.2011, 01:50
Цитата(math64 @ 18.11.2011,  22:25)
Пробую создать свою клавиатуру по примеру SoftKeyboard.
В файле /res/layout/input.xml
Код

<com.example.android.softkeyboard.LatinKeyboardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/keyboard"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

класс com.example.android.softkeyboard.LatinKeyboardView не имеет конструктора по умолчанию
и в моём приложении в классе R отсутствует R.layout.input - но пример без изменений компилируется.
?

Быть может,ошибка? Что у вас в результате получается?

Автор: math64 19.11.2011, 10:56
Цитата(toxx @  19.11.2011,  00:56 Найти цитируемый пост)
насколько известно, это по умолчанию вызывается
Код

public LatinKeyboardView(Context context, AttributeSet attrs) {
        super(context, attrs);
}

и мб импорт R файла из другого места?

И откуда тогда берутся значения параметров context и attrs при создании?
При открытии /res/layout/input.xml из примера в Эклипсе тоже выодится преудпреждение об отсутствии конструктора по умолчанию, но он компилируется.

Вставил этот пример в свой проект с переименованием пакетов и классов - у меня пока не компилируется.

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

Автор: math64 19.11.2011, 20:43
заклинило обновление R.java - пришлось сделать Project->Clean... - теперь компилируется.
Видимо, это произошло потому, что проект содержит не стандартные ресурсы, копировал и редактировал их вне Эклипса.

Автор: toxx 19.11.2011, 23:07
math64
этот конструктор вызывается когда вьюшка берется из хмл, соответсвенно атрибуты берутся оттудаже, ну а контекст this.

Автор: math64 20.11.2011, 01:22
Но насколько я понял, этот пример мне не подходит - нельзя указать использовать этот InputMethodService для конкретного EditText - как я понял, из-за проблем безопасности (если вводится пароль, его можно будет перехватить) - так что нужно делать по другому.

Автор: faggo 21.11.2011, 18:20
Удачи. Я в исходники ни за что не полезу! Оповестишь о результатах?

Автор: maks2400 2.12.2011, 22:20
Спасибо!!! Полезная информация!!!

Автор: logofc 4.12.2011, 14:02
Очень интересно...спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)