好吧,自己弄明白了。
没有简单切换键盘模式的方法。你必须做的是创建2个不同的键盘并手动切换它们。
下面是更新后的XML的样子。请注意,您希望在这两个关键字中使用的行不应包含标志android:keyboardMode。
然后创建一个integer.xml
1
0
下面是相关的Java代码。当您创建Keyboard对象时,您将传递keyboard_normal或keyboard_symbol。
normalKeyBoard = new Keyboard(activity, R.id.board, R.integer.keyboard_normal);
symbolKeyBoard = new Keyboard(activity, R.id.board, R.integer.keyboard_symbol);
现在创建一个类变量来跟踪模式。默认值是R.integer.keyboard_normal
private int mKeyboardState = R.integer.keyboard_normal;
现在,在您onKeyboardActionListner()。安其方法把代码捕捉切换模式(假设你已经在你的键盘创建一个)的关键。
if(primaryCode== Keyboard.KEYCODE_MODE_CHANGE) {
if(mKeyboardView != null) {
if(mKeyboardState == R.integer.keyboard_normal){
//change to symbol keyboard
if(symbolKeyBoard== null){
symbolKeyBoard = new Keyboard(mHostActivity, R.xml.hexkbd, R.integer.keyboard_symbol);
}
mKeyboardView.setKeyboard(symbolKeyBoard);
mKeyboardState = R.integer.keyboard_symbol;
} else {
if(normalKeyBoard== null){
normalKeyBoard = new Keyboard(mHostActivity, R.xml.hexkbd, R.integer.keyboard_normal);
}
mKeyboardView.setKeyboard(normalKeyBoard);
mKeyboardState = R.integer.keyboard_normal;
}
//no shifting
mKeyboardView.setShifted(false);
}
}