展会信息港展会大全

代码片段 反射android R 文件
来源:互联网   发布日期:2016-01-14 11:29:02   浏览:1185次  

导读://通过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...

//通过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;

}

赞助本站

人工智能实验室

相关热词: android开发 android教程

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港