出错误的原因是因为我在某一Fragment的开始,使用了变量:
private String[] modeTexts=new String[]{getResources().getString(R.string.modetext_scan),getResources().getString(R.string.modetext_search)};
然后提示在MainActivity中不能够加载该Fragment,问题归结为在非Activity里面如何调用getresources文件。解决方法如下:
初始化:
private int[] modeTexts=new int[]{R.string.modetext_voice,R.string.modetext_scan,R.string.modetext_search};
使用的时候 ,因为应该是已经初始化之后才使用的,所以:
modeTextView.setText(getResources().getString(modeTexts[modeIndex])); 就可以啦
补充:
获取string.xml文件里面的值有几个不同的地方。
1.在AndroidManifest.xml与layout等xml文件里:
android:text="@string/resource_name"
2.在activity里:
方法一:this.getString(R.string.resource_name);
方法二:getResources().getString(R.string.resource_name);
3.在其他java文件(必须有Context或pplication)
方法一: context.getString(R.string.resource_name);
方法二: application.getString(R.string.resource_name);