import java.lang.reflect.Field; import android.content.Context; import android.util.Log; public class ResourceUtil { private static String TAG = "ResourceUtil"; private static ResourceUtil instance; private Context context; private static Class id = null; private static Class drawable = null; private static Class layout = null; private static Class anim = null; private static Class style = null; private static Class string = null; private static Class array = null; private ResourceUtil(Context paramContext) { this.context = paramContext.getApplicationContext(); try { drawable = Class.forName(this.context.getPackageName() + ".R$drawable"); } catch (ClassNotFoundException localClassNotFoundException1) { Log.i(TAG, localClassNotFoundException1.getMessage()); } try { layout = Class.forName(this.context.getPackageName() + ".R$layout"); } catch (ClassNotFoundException localClassNotFoundException2) { Log.i(TAG, localClassNotFoundException2.getMessage()); } try { id = Class.forName(this.context.getPackageName() + ".R$id"); } catch (ClassNotFoundException localClassNotFoundException3) { Log.i(TAG, localClassNotFoundException3.getMessage()); } try { anim = Class.forName(this.context.getPackageName() + ".R$anim"); } catch (ClassNotFoundException localClassNotFoundException4) { Log.i(TAG, localClassNotFoundException4.getMessage()); } try { style = Class.forName(this.context.getPackageName() + ".R$style"); } catch (ClassNotFoundException localClassNotFoundException5) { Log.d(TAG, localClassNotFoundException5.getMessage()); } try { string = Class.forName(this.context.getPackageName() + ".R$string"); } catch (ClassNotFoundException localClassNotFoundException6) { Log.d(TAG, localClassNotFoundException6.getMessage()); } try { array = Class.forName(this.context.getPackageName() + ".R$array"); } catch (ClassNotFoundException localClassNotFoundException7) { Log.d(TAG, localClassNotFoundException7.getMessage()); } } public static ResourceUtil getResofR(Context paramContext) { if (instance == null) instance = new ResourceUtil(paramContext); return instance; } public int getAnim(String paramString) { return getResofR(anim, paramString); } public int getId(String paramString) { return getResofR(id, paramString); } public int getDrawable(String paramString) { return getResofR(drawable, paramString); } public int getLayout(String paramString) { return getResofR(layout, paramString); } public int getStyle(String paramString) { return getResofR(style, paramString); } public int getString(String paramString) { return getResofR(string, paramString); } public int getArray(String paramString) { return getResofR(array, paramString); } private int getResofR(Class<?> paramClass, String paramString) { if (paramClass == null) { throw new IllegalArgumentException("ResClass is not initialized."); } try { Field localField = paramClass.getField(paramString); int k = localField.getInt(paramString); return k; } catch (Exception localException) { localException.printStackTrace(); } return -1; } }
来源:http://my.eoe.cn/119358/archive/552.html