想要的效果
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:虽然是个小问题,但是本人比较菜,之前也没有遇到过,所以在此记录一下