如何从静态上下文中获取资源内容?

新手上路,请多包涵

我想从 xml 文件中读取字符串,然后再执行其他任何操作,例如 setText 在小部件上,那么如果没有要调用的活动对象,我该如何做到这一点 getResources() 开?

原文由 lost baby 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 354
2 个回答
  1. 创建 Application 的子类,例如 public class App extends Application {
  2. Set the android:name attribute of your <application> tag in the AndroidManifest.xml to point to your new class, eg android:name=".App"
  3. 在应用程序实例的 onCreate() 方法中,将上下文(例如 this )保存到名为 mContext 的静态字段并创建一个返回字段的静态方法例如 getContext()

它应该是这样的:

 public class App extends Application{

    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        mContext = this;
    }

    public static Context getContext(){
        return mContext;
    }
}

现在您可以使用: App.getContext() 每当您想获取上下文时,然后 getResources() (或 App.getContext().getResources() )。

原文由 Cristian 发布,翻译遵循 CC BY-SA 3.0 许可协议

仅用于系统资源!

利用

Resources.getSystem().getString(android.R.string.cancel)

您可以在应用程序的任何地方使用它们,甚至在静态常量声明中!

原文由 Gangnus 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题