这两天在练习个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代码仅作记录,不负责的...原因你懂的...强力建议大家吐槽...嘿嘿...