2012-04-13 169 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(); 
}