zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

java反射android的r文件的示例

2023-06-13 09:15:24 时间

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

复制代码代码如下:


//通过string-arrayname属性动态获取R.array.xxx的int值
publicCharSequence[]getListData(Stringname){
       try{
           Class<?>arrayClass=getArrayResource().getClass();
           FieldintField=arrayClass.getField(name);
           intsourceId=intField.getInt(name);
           returngetResources().getTextArray(sourceId);
       }catch(Exceptione){
           e.printStackTrace();
       }
       returnnull;
   }

privateObjectarrayResource=null;

privateObjectgetArrayResource(){
       if(arrayResource==null){
           Class<?>resource=R.class;
           try{
               Class<?>[]classes=resource.getClasses();
               for(Class<?>c:classes){
                   inti=c.getModifiers();
                   StringclassName=c.getName();
                   Strings=Modifier.toString(i);
                   if(s.contains("static")&&className.contains("array")){
                       returnc.getConstructor().newInstance();
                   }else{
                       continue;
                   }
               }
           }catch(Exceptione){
               e.printStackTrace();
           }
       }
       returnarrayResource;
   }