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

出错误的原因是因为我在某一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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值