- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我试过扩展 Resources
类,所以我可以覆盖 getString(int id)
方法,所以可以对每个 String
做一些效果在我的 Activity
中需要,这里我提供一些我的代码:
public class CustomResource extends Resources {
public CustomResource(AssetManager assets, DisplayMetrics metrics, Configuration config) {
super(assets, metrics, config);
}
@Override
public String getString(int id) throws NotFoundException {
return super.getString(id) + " $$";
}
}
在我的 Activity 中:
CustomResource customResource;
@Override
public Resources getResources() {
if (customResource == null) {
DisplayMetrics metrics = new DisplayMetrics();
super.getWindowManager().getDefaultDisplay().getMetrics(metrics);
customResource = new CustomResource(getAssets(), metrics, super.getResources().getConfiguration());
}
return customResource;
}
但在 Runtime
上显示错误:
Caused by: java.lang.NullPointerException
at com.test.TestActivity.getResources(TestActivity.java:75)
它指向:
super.getWindowManager().getDefaultDisplay().getMetrics(metrics);
最佳答案
找到一个方法:
private CustomResource customResource;
@Override
public Resources getResources() {
if (customResource == null) {
customResource = new CustomResource(super.getAssets(), super.getResources().getDisplayMetrics(), super
.getResources().getConfiguration());
}
return customResource;
}
即使在添加了这些资源之后,它仍然不会覆盖来自 LayoutInflator 的字符串值(例如 setContentView(R.layout.sample)
)
关于android - 如何覆盖 Activity 中的 getResources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889633/
两者有什么区别? 我的资源文件打包在根级包中。在我测试的特定情况下,调用 Class.class.getResource("/rec.txt") 似乎有效。但是,当我尝试在更大的环境 (hadoop)
该应用程序具有多语言 支持。但是我们在使用应用程序上下文刷新 Resources 时遇到了问题。 目前,我的 ViewModels 正在扩展 AndroidViewModel,这样我们就可以访问 Vi
我想了解使用 View.getResources() 和 View.getContext().getResources() 的真正区别。 例如,我必须从资源中为 TextView 设置颜色.. vie
getClass().getClassLoader().getResource()和getClass.getResource()有什么区别? 从资源中检索文件时,在什么情况下应该使用哪一个? 最佳答案
我从 What is the difference between Class.getResource() and ClassLoader.getResource()? 了解到并从自己的代码中,即 g
我一直在和我的伙伴一起制作 2D 游戏,并且我通过一些 Youtube 教程学习了很多关于一些基本游戏开发概念的知识。我正在学习的其中一件事是 Sprite (对于那些不知道的,2D 图像渲染到屏幕)
我有简单的 Activity : public class TestActivity extends MainActivity { @Override public void o
当我的测试类位于默认包中时,下面的测试方法通过,而当我将其移动到包中时,测试方法失败。 目录结构如下: src/ main/ java/ some.package/ r
这个问题已经有答案了: JavaFX: Weird ClassNotFoundException after updating to Java 9 (1 个回答) 已关闭 4 年前。 我是 Java
我想要以下形式的资源 URL C:/Users/.../build/classes/jam/lena1.png 为了实现这一点,我编写了以下代码 System.out.println(getClass
我希望有人能在这里帮助我,因为我已经与一个问题作斗争有一段时间了。在我的主类中,我使用以下命令: System.out.println(getClass().getClassLoader().getR
我有以下代码,用于在我的应用程序中创建带有两个选项卡的自定义 ListView: package com.test.testing; import android.content.Context; i
大家。 我是 Java 新手,正在使用 UI 制作培训项目。在培训过程中,我决定从资源加载图标并将其加载移动到不同的类中。并遇到问题。我真的试图自己找到答案,但找不到。代码如下。 主类 package
我在src文件夹下(在resources文件夹下)放了一些.txt文件。 但我无法在运行时从该资源创建有效的 File。 String path = this.getClass().getResour
这个问题在这里已经有了答案: Way to access resource files in python (4 个答案) 关闭 9 年前。 在 Java 中,如果我想读取包含算法资源数据的文件,我
我已经在 java SE 中设置了基本的 maven 项目,其中包含一个资源: main -java -resources -config -> database.properties
我有一个 A 类,它获取一个配置文件: this.getClass().getResource("cfgFile"); 现在我创建了一个需要 A 的 cfgFile 的新类 B。现在我正在做: A.c
这段代码不在mainActivity类中 错误: cannot find symbol method getResources() 代码: public void printPhoto(int im
我正在学习教程 here .该文件位于项目的同一根文件夹中。当它在 src 文件夹和同一个包文件夹中时,我已经尝试过这样做。这 3 个位置都不起作用。 具体的代码行是: ImageIcon ii =
我有以下问题。在我们的集成测试中,我们使用不同的配置,该配置将在测试之前使用以下代码从测试资源中加载: URL resource = ClassLoader.getSystemResource("ap
我是一名优秀的程序员,十分优秀!