gpt4 book ai didi

Android - 覆盖 android.content.Resources 类

转载 作者:行者123 更新时间:2023-11-30 01:53:58 27 4
gpt4 key购买 nike

我们能否覆盖 android.content.Resources 类,以便从应用程序中的任何位置调用 getResources() 指向覆盖的自定义 Resources 对象?

最佳答案

您可以使用 ContextWrapper并覆盖其 getResources() 方法以返回您的自定义资源实现。

例如,你可以在你的 Activity 中做这样的事情:

@Override
public void onCreate(Bundle savedInstanceState) {
Context wrappedContext = new MyContextWrapper(this);
View v = LayoutInflater.from(wrappedContext).inflate(R.layout.activity_main);
setContentView(v);
}

这可行,但它不会自动“从应用程序的任何地方”,每当您调用带有 Context 参数的东西时,您都必须手动传递适当的包装器。

Application 类本身扩展了 ContextWrapper,因此也有一个 getResources() 方法。如果您在自定义 Application 类中覆盖它并在 AndroidManifest.xml 中设置它,那么任何调用 context.getApplicationContext().getResources() 的内容都将获得自定义实现。

关于Android - 覆盖 android.content.Resources 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32558190/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com