java反射android的r文件的示例
java反射android的r文件的示例
发布时间:2016-12-28 来源:查字典编辑
摘要:动态取得R文件的int值,通过string-arrayname属性动态获取R.array.xxx的int值复制代码代码如下://通过stri...

动态取得R文件的int值,通过string-array name属性动态获取R.array.xxx的int值

复制代码 代码如下:

//通过string-array name属性动态获取R.array.xxx的int值

public CharSequence[] getListData(String name) {

try {

Class<?> arrayClass = getArrayResource().getClass();

Field intField = arrayClass.getField(name);

int sourceId = intField.getInt(name);

return getResources().getTextArray(sourceId);

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

private Object arrayResource = null;

private Object getArrayResource() {

if (arrayResource == null) {

Class<?> resource = R.class;

try {

Class<?>[] classes = resource.getClasses();

for (Class<?> c : classes) {

int i = c.getModifiers();

String className = c.getName();

String s = Modifier.toString(i);

if (s.contains("static") && className.contains("array")) {

return c.getConstructor().newInstance();

} else {

continue;

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

return arrayResource;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类