我正在编写一个语言学习应用程序,目前只有德语< - >俄语。
有几个EditTexts
用户应该用一种或另一种语言输入文本。由于这些语言使用不同的字母表,因此应用程序通过实现InputMethodService
并提供拉丁语和西里尔语键盘布局来使用自己的软键盘。每个EditText
字段都知道哪种语言是预期的。
我想要的是,例如,每当期望俄语的EditText
字段成为焦点时,应显示西里尔语键盘布局。选中后,EditText
应该将一些常量传递给IME,后者可以用它来决定是以拉丁语还是西里尔语模式显示。
理想情况下,人们只需为InputType
指定一些自定义EditText
,但这似乎不可能,是吗?这里的正确方法是什么?
答案 0 :(得分:2)
你的想法听起来不错。 IME对交换机块中的InputType
进行代码检查,如果InputType
不匹配,则显示默认键盘布局。
您还可以在onCreate()
Activity
方法中提供逻辑,以检查哪种输入法处于有效状态,并使用该信息选择inputType
EditText
应该具有的{{1}}。