Android 如何获得软键盘类型(QWERTY,(X)T9等)?
在一系列Android 如何获得软键盘类型(QWERTY,(X)T9等)?,android,events,keyboard,android-softkeyboard,Android,Events,Keyboard,Android Softkeyboard,在一系列EditText视图中,在键入第5个字符后,光标应自动跳转到下一个视图 我是这样做的: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int twTreshold = 4; etKey1 = (EditText) findViewById(R.id.et_levels_key1); // ... etKeyX = (Edi
EditText
视图中,在键入第5个字符后,光标应自动跳转到下一个视图
我是这样做的:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int twTreshold = 4;
etKey1 = (EditText) findViewById(R.id.et_levels_key1);
// ...
etKeyX = (EditText) findViewById(R.id.et_levels_keyX);
etKey1.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() > twTreshold)
etKey2.requestFocus();
}
@Override
public void afterTextChanged(Editable arg0) {
if (currentText.length() > twTreshold)
etKey2.requestFocus();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
});
}
现在的问题是:
用户可以使用T9或类似的键盘。在那里,为了输入字母“B”,必须按下键盘上的按钮“ABC”。一个“A”连接到EditText的文本,触发事件onTextChanged()
。太早了!用户仍需再次按下按钮“ABC”,以将“A”替换为所需的“B”
我的想法是得到键盘类型,如果它是这里提到的类型,只是不要自动切换焦点
有人知道如何检索键盘类型吗
非常感谢 你找到解决这个问题的办法了吗?我正在处理同一个问题。不幸的是,我认为没有。在我们的软件能够处理的级别上,有数千种不同的组合可以将用户的想法转化为字符(更不用说单词的语义元素)。想象一下,在基于手势的键盘上,你可以四处滑动,而在其他键盘上,你可以多次点击按钮以获得所需的值,比如软件和硬件键盘,还有各种键盘应用程序……由于键盘的定义过于松散,无法进一步分类。