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”

我的想法是得到键盘类型,如果它是这里提到的类型,只是不要自动切换焦点

有人知道如何检索键盘类型吗


非常感谢

你找到解决这个问题的办法了吗?我正在处理同一个问题。不幸的是,我认为没有。在我们的软件能够处理的级别上,有数千种不同的组合可以将用户的想法转化为字符(更不用说单词的语义元素)。想象一下,在基于手势的键盘上,你可以四处滑动,而在其他键盘上,你可以多次点击按钮以获得所需的值,比如软件和硬件键盘,还有各种键盘应用程序……由于键盘的定义过于松散,无法进一步分类。