标签:
动态取得R文件的int值
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
//通过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; } |
标签:
原文地址:http://blog.csdn.net/u014311064/article/details/42286667