The*_*Dev 1 android android-xml android-resources
我有一个方法从EditText返回大约20个可能的字符串之一.这些字符串中的每一个都有相应的响应,可以在strings.xml中的TextView中打印.有没有办法使用类似的东西从strings.xml调用字符串context.getResources().getString(R.strings."stringFromMethod")?还有另一种方法从这样的大型列表中调用字符串吗?
我能想到的唯一方法是将每个字符串转换为int,并使用它来查找字符串数组或switch语句中的字符串.这两个都涉及一个巨大的if-else if语句将字符串转换为int,并且如果添加或删除任何字符串我将更有可能错过一个并且有趣的bug会采取足够的步骤来改变狩猎.干净利落的想法吗?
编辑:忘了添加,我尝试使用的另一种方法是从中获取resourceID
int ID = context.getResources().getIdentifier("stringFromMethod", "String", context.getPackageName())
Run Code Online (Sandbox Code Playgroud)
并取整数并将其放入
context.getResources().getString(ID)
Run Code Online (Sandbox Code Playgroud)
这看起来似乎也没有用.
不,你不能.getString()需要整数格式的资源ID,因此您不能在其中附加字符串.
但是,您可以尝试这样做:
String packageName = context.getPackageName();
int resId = context.getResources().getIdentifier("stringFromMethod", "string", packageName);
if (resId == 0) {
throw new IllegalException("Unknown string resource!"; // can't find the string resource!
}
string stringVal = context.getString(resId);
Run Code Online (Sandbox Code Playgroud)
上面的语句将返回资源R.string.stringFromMethod的字符串值.
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |