在一系列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”。
我的想法是获取键盘类型,如果它是这里提到的类型,只是不自动切换焦点。
有人可能知道如何检索键盘类型吗?
非常感谢!