我正在尝试使用动态名称访问字符串变量,具体取决于我的图库所处的位置.要使用固定名称获取字符串的值,我使用以下哪个很好(该字符串称为pic1info):
String strTest = getResources().getString(R.string.pic1info);
Run Code Online (Sandbox Code Playgroud)
我的字符串被命名为pic1info,pic2info,pic3info等,我想替换pic1info的静态定义以包含位置,因此传递以下字符串的内容代替上面的pic1info,以便根据当前位置返回不同的字符串:
String strDynamicStringName= "pic" + position + "info";
Run Code Online (Sandbox Code Playgroud)
在javascript中,等价物将是eval,我确信有一种简单的方法可以做到这一点,但我无法弄清楚如何!
非常感谢您的帮助!
戴夫
小智 13
使用此:android.content.res.Resources.getIdentifier
int resID = getResources().getIdentifier("pic" + position + "info", "string", getPackageName());
String strTest = getResources().getString(resID);
Run Code Online (Sandbox Code Playgroud)
不,在 Java 中没有简单的方法可以做到这一点,但您可以创建一个整数数组,其中每个索引代表该字符串的 R 值。
private static final int[] LOOKUP_TABLE = new int[] {
R.string.pic1info,
R.string.pic2info,
R.string.pic3info,
R.string.pic4info
};
Run Code Online (Sandbox Code Playgroud)
获取字符串将变为:
String strTest = getResources().getString(LOOKUP_TABLE[position]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4111 次 |
| 最近记录: |