一个输入法程序,想要添加一些自定义按键,但是初始化数组的时候一直出问题。
public class FullKeyboard extends Keyboard {
...
//数组初始化:
private Key[] mCustomKey = new Key[10];
...
protected Key createKeyFromXml(Resources res, Row parent, int x, int y,
XmlResourceParser parser) {
...
}else if(key.codes[0]<= KEYCODE_CUSTOM0 && key.codes[0]>= KEYCODE_CUSTOM9){
//在这里赋值,报错Attempt to write to null array。
mCustomKey[KEYCODE_CUSTOM0- key.codes[0]]= key;
}
}
然后改为:
public class FullKeyboard extends Keyboard {
...
private Key[] mCustomKey;
...
protected Key createKeyFromXml(Resources res, Row parent, int x, int y,
XmlResourceParser parser) {
//数组初始化:
mCustomKey = new Key[10];
...
}else if(key.codes[0]<= KEYCODE_CUSTOM0 && key.codes[0]>= KEYCODE_CUSTOM9){
mCustomKey[KEYCODE_CUSTOM0- key.codes[0]]= key;
}
}
不报错,logcat也没问题,但是后面别的方法里使用mCustomKey时,里面除了mCustomKey[9]其他全是null