Я пытался расширить 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) + " $$";
}
}
и в моей деятельности:
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
есть ошибка:
Причина: java.lang.NullPointerException
at com.test.TestActivity.getResources (TestActivity.java:75)
и указывает на:
super.getWindowManager().getDefaultDisplay().getMetrics(metrics);