现在的位置: 首页 > 综合 > 正文

android代码中动态获取资源ID

2013年11月09日 ⁄ 综合 ⁄ 共 1112字 ⁄ 字号 评论关闭

ResourcesId.ziphttp://download.csdn.net/detail/victoryckl/5430775

https://github.com/victoryckl/ResourcesId.git

动态获取资源ID,

避免打包成jar文件,或者移植代码到别的APK中时,R.java import错误。

package com.example.resid;

import android.content.Context;
import android.content.res.Resources;

public class ResourcesId {
	private static final String TAG = "ResourcesId";
	private static Context mContext;
	private static Resources mResources;
	private static String mPackageName;
	
	private ResourcesId() {}
	
	private static class ResourcesIdHolder {
		private static ResourcesId instance = new ResourcesId();
	}
	private static void setContext(Context context) {
		if (context != null) {
			mContext = context.getApplicationContext();
			mResources = mContext.getResources();
			mPackageName = mContext.getPackageName();
		}
	}
	
	public static ResourcesId getInstance(Context context) {
		ResourcesIdHolder.instance.setContext(context);
		return ResourcesIdHolder.instance;
	}
	
	public int getResourcesId(String defType, String name) {
		if (mResources != null) {
			return mResources.getIdentifier(name, defType, mPackageName);
		}
		return 0;
	}
	
	public static int getResourcesId(Context context, String defType, String name) {
		return ResourcesId.getInstance(context).getResourcesId(defType, name);
	}
}

 

抱歉!评论已关闭.