标签:
动态取得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