报错:由getResources()引起的:Fragment MyFragment not attached to Activity

来源:互联网 发布:Ubuntu纯命令行打中文 编辑:程序博客网 时间:2024/06/11 17:47

出错误的原因是因为我在某一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);

0 0
原创粉丝点击