這兩天在練習個Android應用,需要創建一些自定義的View,實際每個View都是很簡單的封裝或者繼承,但每個的Attribute都要一一配置,很是麻煩.
寫一半時,忽然想起,這些Attributes都是可以從XML資源文件加載的啊...土了一把,趕緊刪了全部代碼,重寫了...(又土了一把...)
雖然很早就知道這個,但卻從來沒寫過,錯了無數次,終于發現問題了,于是封裝個Utils方法,供以后調用...
public static AttributeSet getAttributeSet(Context context, final String className, int resId) {
XmlResourceParser p = context.getResources().getXml(resId);
int state = XmlResourceParser.START_DOCUMENT;
do {
try {
state = p.next();
if (state == XmlResourceParser.START_TAG) {
if (p.getName().equals(className)) {
return Xml.asAttributeSet(p);
}
}
} catch (XmlPullParserException e) {
e.printStackTrace();
break;
} catch (IOException e) {
e.printStackTrace();
break;
}
} while (state != XmlResourceParser.END_DOCUMENT);
return null;
}
說明下啊,當前本人java代碼僅作記錄,不負責的...原因你懂的...強力建議大家吐槽...嘿嘿...