Android 封裝jar包,反射機制獲取資源
阿新 • • 發佈:2018-11-25
public
class
ResourceUtil {
public
static
int
getLayoutId(Context paramContext, String paramString) {
return
paramContext.getResources().getIdentifier(paramString,
"layout"
,
paramContext.getPackageName());
}
public
static
int
getStringId(Context paramContext, String paramString) {
return
paramContext.getResources().getIdentifier(paramString,
"string"
,
paramContext.getPackageName());
}
public
static
int
getDrawableId(Context paramContext, String paramString) {
return
paramContext.getResources().getIdentifier(paramString,
"drawable"
, paramContext.getPackageName());
}
public
static
int
getStyleId(Context paramContext, String paramString) {
return
paramContext.getResources().getIdentifier(paramString,
"style"
, paramContext.getPackageName());
}
public
static
int
getId(Context paramContext, String paramString) {
return
paramContext.getResources().getIdentifier(paramString,
"id"
, paramContext.getPackageName());
}
public
static
int
getColorId(Context paramContext, String paramString) {
return
paramContext.getResources().getIdentifier(paramString,
"color"
, paramContext.getPackageName());
}
public
static
int
getArrayId(Context paramContext, String paramString) {
return
paramContext.getResources().getIdentifier(paramString,
"array"
, paramContext.getPackageName());
}
}
<
string
name
=
"version_update_schedule"
>已下載%1$s請稍等&#8230;</
string
>
String text=mContext.getResources().getString(CPResourceUtil.getStringId(mContext,
"version_update_schedule"
));
TextView.setText(String.format(text, p+”%”));
version_update_schedule 是string檔案中name
獲取Class物件有三種方式:
1.通過Object類的getClass()方法。例如:
Class c1 = new String("").getClass();
2.通過Class類的靜態方法——forName()來實現:
Class c2 = Class.forName("MyObject");
3.如果T是一個已定義的型別的話,在java中,它的.class檔名:T.class就代表了與其匹配的Class物件,例如:
Class c3 = Manager.class;
Class c4 = int.class;
Class c5 = Double[].class;