2012-04-13 121 views
2

我创建attrs.xml文件属性:获得价值

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="Custom"> 
     <attr name="src" format="integer" /> 
    </declare-styleable> 
</resource> 

而且在我的代码,我得到这样的属性值: attrs.getAttributeIntValue(” mynamespace“,”src“,-1);

它的工作原理。我从布局xml文件中获取'src'的值。 但我的问题是为什么android不会在R类中生成一个值,因此我不需要在我的java代码中再次使用字符串“src”?

比kyou。

回答

3

而是使用TypedArray

public CustomView(final Context context) { 
    this(context, null); 
} 

public CustomView(final Context context, 
      final AttributeSet attrs) { 
    this(context, attrs, 0); 
} 

public CustomView(final Context context, 
      final AttributeSet attrs, final int defStyle) { 
     super(context, attrs, defStyle); 

    final TypedArray a = context.obtainStyledAttributes(attrs, 
       R.styleable.Custom, defStyle, 0); 

    int src = a.getInt(R.styleable.Custom_src, 0); 

    a.recycle(); 
}