想要的效果
String[] arr ={this.getString(R.string.a),this.getString(R.string.b)};
本来是在给arr初始化的时候就使用string.xml文件中数据,但是报错了:
Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
大概意思是说getResources()方法没有
分析结果:因为我在定义变量的时候就给他初始化赋值,因为一开始我就要使用arr里边的数据,但是这个时候我的Activity还没有创建出来,也就是说这个时候还没有Context上下文对象,所以就没有办法拿到string.xml文件中的数据
解决办法:
1.定义变量并初始化但先不赋值:String[] arr = null;
2.在onCreate()方法中给变量赋值:arr = new String[]{this.getString(R.string.a),this.getString(b)};
这样就可以了!!!
PS:虽然是个小问题,但是本人比较菜,之前也没有遇到过,所以在此记录一下
String[] arr ={this.getString(R.string.a),this.getString(R.string.b)};
本来是在给arr初始化的时候就使用string.xml文件中数据,但是报错了:
Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
大概意思是说getResources()方法没有
分析结果:因为我在定义变量的时候就给他初始化赋值,因为一开始我就要使用arr里边的数据,但是这个时候我的Activity还没有创建出来,也就是说这个时候还没有Context上下文对象,所以就没有办法拿到string.xml文件中的数据
解决办法:
1.定义变量并初始化但先不赋值:String[] arr = null;
2.在onCreate()方法中给变量赋值:arr = new String[]{this.getString(R.string.a),this.getString(b)};
这样就可以了!!!
PS:虽然是个小问题,但是本人比较菜,之前也没有遇到过,所以在此记录一下
本文介绍了一个关于在Android开发过程中尝试直接在数组初始化时获取string资源导致的NullPointerException问题及解决方案。作者分享了如何通过延迟初始化避免在Activity尚未创建完成时调用Context的方法。
1万+

被折叠的 条评论
为什么被折叠?



