您的位置:首页 > 其它

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

2015-09-07 17:01 302 查看
出错误的原因是因为我在某一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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: