您的位置:首页 > 移动开发 > Android开发

用java反射来获取android的R.java中的资源

2011-12-14 00:33 399 查看
strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, TestActivity!</string>
<string name="app_name">Test</string>
<string name="key1_name">value1</string>
<string name="kay2_name">value2</string>
<string name="kay3_name">value3</string>
</resources>

TestActivity.java:

public class TestActivity extends Activity {
/** Called when the activity is first created. */
private static String[] key = {
"key1_name",
"key2_name",
"key3_name"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Class<string> c = R.string.class;
Field field;
int value = 0;
try {	field = c.getDeclaredField(key[0]);
value = field.getInt(null);
} catch (SecurityException e1) {
e1.printStackTrace();
} catch (NoSuchFieldException e1) {
e1.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}

System.out.println("vaule--->>>" + getResources().getString(value));
}
}

运行效果:



这样就可以实现通过动态改变key,来得到对应的value了。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: