3
<!--attrs.xml-->
<resources>
    <declare-styleable name="View2">  
        <attr name="textColor" format="color"/>  
        <attr name="textSize" format="dimension"/>  
    </declare-styleable> 
</resources>
<!--styles.xml-->
<resources>
    <style name="View2">
        <item name="textColor">#ffffffff</item>
        <item name="textSize">22dip</item>
    </style>
</resources>
<!--the View2 class defined-->
public View2(Context context, AttributeSet attrs) {
    super(context, attrs);   
        TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.View2);
    final int len =array.Length();
        final int N =array.getIndexCount();//why N==0,because i initialize in styles.xml
}
<!--the callback method,like in Activity.onCreate(..)-->
@Override 
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    View2 v = new View2(this,null);
} 

attrs.xml で styable name="View2" を宣言し、styles.xml で 2 つの attrs を初期化し、次に TypedArray で Style を取得します。2 つを初期化するため、なぜ N==0 なのか疑問です。 attrsin styles.xml

4

0 に答える 0