分享一个android的工具类(扩充根据R类中的id寻址xml)

android提供的根据id找简单资源如下


String about = getString(R.string.about);
String[] aryShop = getResources().getStringArray(R.array.level);



分享一个自己扩充的可以针对性的选个多个ID资源


package lidongbo.util;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

import lidongbo.test.R;
import lidongbo.test.R.drawable;

/**
*
* @author lidongbo
*
*/
public class ReadR {


public static Integer[] readId(Class<drawable> innerClass) throws IllegalArgumentException, IllegalAccessException {
List<Integer> result=new ArrayList<Integer>();
Field[] fileds = innerClass.getDeclaredFields();
for (int i = 0; i < fileds.length; i++) {
result.add(fileds[i].getInt(innerClass));
}
return result.toArray(new Integer[0]);
}


/**
* ,|空格 分割
* @param innerClass
* @param fileNameLikse
* @param andor true 与条件
* @return
* @throws IllegalArgumentException
* @throws IllegalAccessException
*/
public static Integer[] readId(Class<drawable> innerClass,String fileNameLikse,Boolean andor) throws IllegalArgumentException, IllegalAccessException {

if(fileNameLikse==null || andor==null){
return readId(innerClass);
}

List<Integer> result=new ArrayList<Integer>();
Field[] fileds = innerClass.getDeclaredFields();

LOODFILED:for (int i = 0; i < fileds.length; i++) {
String filedName=fileds[i].getName();
if(andor){//与
StringTokenizer st=new StringTokenizer(fileNameLikse,",| ");
while(st.hasMoreElements()){
if(!filedName.contains(st.nextElement().toString())){
continue LOODFILED;
}
}
result.add(fileds[i].getInt(innerClass));
System.out.println(filedName);
}else{//或
StringTokenizer st=new StringTokenizer(fileNameLikse,",| ");
while(st.hasMoreElements()){
if(filedName.contains(st.nextElement().toString())){
result.add(fileds[i].getInt(innerClass));
System.out.println(filedName);
continue LOODFILED;
}
}
}
}
return result.toArray(new Integer[0]);
}

public static void main(String[] args){

Integer[] ii=null;
try {
ii = ReadR.readId(R.drawable.class,"d,r",true);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
if(ii!=null){
for (int i = 0; i < ii.length; i++) {
System.out.println(ii[i]);
}
}
}


}



贴下我的R

package lidongbo.test;

public final class R {
public static final class array {
public static final int level=0x7f050000;
}
public static final class attr {
}
public static final class drawable {
public static final int blue=0x7f02000b;
public static final int brown=0x7f02000e;
public static final int darkgray=0x7f020007;
public static final int darkgreen=0x7f02000d;
public static final int dreamweaver=0x7f020000;
public static final int flash=0x7f020001;
public static final int icon=0x7f020002;
public static final int illustrator=0x7f020003;
public static final int indesign=0x7f020004;
public static final int lightroom=0x7f020005;
public static final int photoshop=0x7f020006;
public static final int pink=0x7f02000c;
public static final int translucent_background=0x7f02000a;
public static final int transparent_background=0x7f020009;
public static final int white=0x7f020008;
}
public static final class id {
public static final int age=0x7f070012;
public static final int food_relativelayout=0x7f070000;
public static final int food_text_explanation=0x7f070002;
public static final int food_text_question=0x7f070001;
public static final int height=0x7f070013;
public static final int interim_button_submit=0x7f07000c;
public static final int interim_text_text1=0x7f070009;
public static final int interim_text_text2=0x7f070008;
public static final int interim_text_text3=0x7f070007;
public static final int interim_text_text4=0x7f070006;
public static final int interim_text_text5=0x7f07000a;
public static final int interim_text_text6=0x7f07000b;
public static final int interim_text_text7=0x7f070005;
public static final int interim_text_title=0x7f070004;
public static final int myGallery=0x7f070023;
public static final int name=0x7f070011;
public static final int next_button_back=0x7f07001d;
public static final int next_button_submit=0x7f07001c;
public static final int next_edittext_circumference=0x7f07001e;
public static final int next_edittext_hipcircumference=0x7f070020;
public static final int next_edittext_waistline=0x7f07001f;
public static final int next_text_text1=0x7f070018;
public static final int next_text_text3=0x7f070016;
public static final int next_text_text4=0x7f070019;
public static final int next_text_text5=0x7f07001a;
public static final int next_text_text6=0x7f07001b;
public static final int next_text_title=0x7f070015;
public static final int result_relativelayout=0x7f070021;
public static final int result_text_result=0x7f070022;
public static final int sex=0x7f07000d;
public static final int sex1=0x7f07000e;
public static final int sex2=0x7f07000f;
public static final int sex3=0x7f070010;
public static final int text2=0x7f070017;
public static final int weight=0x7f070014;
public static final int widget0=0x7f070003;
}
public static final class layout {
public static final int food=0x7f030000;
public static final int interim=0x7f030001;
public static final int main=0x7f030002;
public static final int next=0x7f030003;
public static final int result=0x7f030004;
}
public static final class string {
public static final int about=0x7f040006;
public static final int about_msg=0x7f040008;
public static final int age=0x7f040010;
public static final int app_name=0x7f040001;
public static final int back=0x7f040015;
public static final int choose=0x7f04002b;
public static final int circumference=0x7f040012;
public static final int exit=0x7f040007;
public static final int food_fruits=0x7f040016;
public static final int food_fruits_apple=0x7f040019;
public static final int food_fruits_banana=0x7f04001a;
public static final int food_fruits_orange=0x7f04001b;
public static final int food_fruits_peach=0x7f04001c;
public static final int food_fruits_pear=0x7f04001e;
public static final int food_fruits_watermelon=0x7f04001d;
public static final int food_meat=0x7f040017;
public static final int food_meat_all=0x7f040027;
public static final int food_vegetables=0x7f040018;
public static final int food_vegetables_cabbage=0x7f040026;
public static final int food_vegetables_chili=0x7f040022;
public static final int food_vegetables_chineseCabbage=0x7f040023;
public static final int food_vegetables_guineaSquash=0x7f04001f;
public static final int food_vegetables_kidneyBean=0x7f040020;
public static final int food_vegetables_potato=0x7f040021;
public static final int food_vegetables_radish=0x7f040024;
public static final int food_vegetables_tomato=0x7f040025;
public static final int height=0x7f040003;
public static final int hello=0x7f040000;
public static final int hip_circumference=0x7f040013;
public static final int iKnow=0x7f040028;
public static final int name=0x7f040014;
public static final int ok=0x7f040009;
public static final int sex=0x7f040002;
public static final int sex1=0x7f04000c;
public static final int sex2=0x7f04000d;
public static final int sex3=0x7f04000e;
public static final int style1=0x7f040004;
public static final int style2=0x7f040005;
public static final int style3=0x7f04000b;
public static final int submit=0x7f04000a;
public static final int turn=0x7f04002a;
public static final int waistline=0x7f040011;
public static final int wait=0x7f040029;
public static final int weight=0x7f04000f;
}
public static final class style {
public static final int Style1=0x7f060000;
public static final int Style2=0x7f060001;
public static final int Style3=0x7f060002;
public static final int Theme=0x7f060003;
public static final int Theme_Translucent=0x7f060004;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值