Java 管理两个资源名称-一种只使用一个名称的方式-Android
我的类中有一个常量,用于保存值的键:Java 管理两个资源名称-一种只使用一个名称的方式-Android,java,android,android-resources,Java,Android,Android Resources,我的类中有一个常量,用于保存值的键: public static final String CAR_NAME = "car_name"; public static final String CAR_NUMBER = "car_number"; values.xml <string name="car_name">Tl5t</string> <string name="car_name_tr">Tl5tTR</string> <s
public static final String CAR_NAME = "car_name";
public static final String CAR_NUMBER = "car_number";
values.xml
<string name="car_name">Tl5t</string>
<string name="car_name_tr">Tl5tTR</string>
<string name="car_number">45334234</string>
我使用的方法如下:
int resourceId = returnResourceId(CAR_NAME);
问题是我需要管理两次资源名,一次在类const中,一次在values.xml
文件中
我是否可以继续使用我的逻辑,但只使用一个键?我建议您不要这样做,因为这将比直接访问慢得多。也就是说,您可以通过查找资源的名称、添加后缀,然后查找带有_tr后缀的额外字符串的资源ID来实现这一点 例如:
@StringRes
public int getResourceId(@StringRes int baseResourceId) {
// Assume baseResourceId == R.string.car_name
if (state == 1) {
final Resources res = getResources();
// Will return "car_name"
final String resourceName = res.getResourceEntryName(baseResourceId);
// Look up and return the integer ID for "car_name_tr"
return res.getIdentifier(resourceName + "_tr", "string", BuildConfig.APPLICATION_ID);
} else {
// Otherwise just return the input
return baseResourceId;
}
}
我不明白你在问什么。您能说明您希望如何访问这些值而不是现在必须执行的操作吗?例如,如果我想更改
values.xml
中car\u name
的键。我需要在那里更改它,还需要constCAR\u NAME=“CAR\u NAME”
我正在寻找一种方法,以便只在一个地方进行更改。您需要使用资源来存储这些值吗?
@StringRes
public int getResourceId(@StringRes int baseResourceId) {
// Assume baseResourceId == R.string.car_name
if (state == 1) {
final Resources res = getResources();
// Will return "car_name"
final String resourceName = res.getResourceEntryName(baseResourceId);
// Look up and return the integer ID for "car_name_tr"
return res.getIdentifier(resourceName + "_tr", "string", BuildConfig.APPLICATION_ID);
} else {
// Otherwise just return the input
return baseResourceId;
}
}