goddade 2016-11-22 01:44 采纳率: 0%
浏览 1448

Android数组初始化出错

一个输入法程序,想要添加一些自定义按键,但是初始化数组的时候一直出问题。

 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

  • 写回答

2条回答 默认 最新

  • xwpeng_pl 2016-11-22 07:54
    关注

    第一个报错建议你在createKeyFromXml中debug下,这里看不出什么.
    第二个全为null是正常情况,new key[10]等价于new key[]{null,.....null}.

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题