如何获得软键盘类型(QWERTY,(X)T9等)?

时间:2011-09-16 15:16:33

标签: 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 = (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”。

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

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

非常感谢!

0 个答案:

没有答案