Java 无法更改软键盘上的按键图标

Java 无法更改软键盘上的按键图标,java,android,keyboard,Java,Android,Keyboard,我正在努力学习android键盘api 使用软键盘的例子,我试图改变按键图标,我可以改变一切,但图标永远不会改变 我在LatinKeyboardView中,使用onLongPress方法,使用以下行: copia.icon = getResources().getDrawable(R.drawable.tecladir); 但是图标没有改变 即使使用后 this.invalidateAllKeys(); 要强制重画关键点,图标仍保持不变 onLongPress的完整代码如下: @Overri

我正在努力学习android键盘api

使用软键盘的例子,我试图改变按键图标,我可以改变一切,但图标永远不会改变

我在LatinKeyboardView中,使用onLongPress方法,使用以下行:

copia.icon = getResources().getDrawable(R.drawable.tecladir);
但是图标没有改变

即使使用后

this.invalidateAllKeys();
要强制重画关键点,图标仍保持不变

onLongPress的完整代码如下:

@Override
protected boolean onLongPress(Key key) {

    key.icon = getResources().getDrawable(R.drawable.tecladir);
    //tecladir is one image i have
    key.text = "batata";
    key.label = "batata";
    this.invalidateAllKeys();

    //default code of method
    if (key.codes[0] == Keyboard.KEYCODE_CANCEL) {
        getOnKeyboardActionListener().onKey(KEYCODE_OPTIONS, null);
        return true;
    } else {
        return super.onLongPress(key);
    }
}

我遗漏了什么吗?

好的,找到了解决方案

在分配新图标之前,标签必须为空,否则图标不会更改,正确的方法是:

key.label = null;
key.icon = getResources().getDrawable(R.drawable.tecladir);