我们在使用xml生成布局的时候,系统会自动调用view的public View(Context context, AttributeSet attrs)这个构造器,attrs这个参数是有系统帮我们自动实现的。
我现在想问的是AttributeSet我们能不能自己实现,该如何实现?
这样做的好处是,应用程序的布局可以通过外部的xml来指定,就像浏览器那样。XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp1 = factory.newPullParser();xpp1.setInput( new StringReader ( "<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>" ) );
AttributeSet attr=Xml.asAttributeSet(xpp1);
我试过这个方法没有用啊。

解决方案 »

  1.   

    AttributeSet的作用是什么????
      

  2.   

    一定要用这个解析方式? 你换个DoucmentBuilderFactory来解析试试看
      

  3.   

    看看这个http://www.360doc.com/content/10/1122/14/1520733_71424463.shtml
      

  4.   

    同样的问题
    android docs 里推荐的方法只有
    XmlPullParser parser = resources.getXml(myResouce);
     AttributeSet attributes = Xml.asAttributeSet(parser);
    难道必须依赖xml么?
      

  5.   

    首先失败的原因是类型转换错误。
    Xml.asAttributeSet(parser)返回的是XmlPullAttributes的实例(在android.util包)。
    而View的构造函数中需要的是XmlBlock.Parser的实例(在android.content.res包)。
    两个都实现了AttributeSet接口,所以在编译上没有错。而且XmlPullAttributes和XmlBlock.Parser这两个类都是不可视的,目前表示束手无策。