I'm trying to create custom xml attributes, which can be accepted by more classes then one. I've found (among others) this helpful answer: Defining custom attrs
But how to i access the attribute programmaticly? Eclipse does not seem to find the defined names:
Here is my attrs.xml, it's 'ViewPadding i'm trying to use:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="ViewPadding" format="integer"/>
<declare-styleable name="IntegerPicker">
<attr name="maxNrOfDigits" format="integer"/>
<attr name="NumberSize" format="integer"/>
<attr name="ViewColor" format="color"/>
<attr name="TextAlignRight" format="boolean"/>
</declare-styleable>
<declare-styleable name="DoublePicker">
<attr name="CompoundViewColor" format="color"/>
<attr name="CompoundViewPadding" format="integer"/>
</declare-styleable>
</resources>
This is the code i use to access the other attributes:
public IntegerPicker(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.integer_picker, this, true);
etInteger = (EditText) findViewById(R.id.etInteger);
TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.IntegerPicker);
final int N = a.getIndexCount();
for (int i = 0; i < N; ++i)
{
int attr = a.getIndex(i);
switch (attr)
{
case R.styleable.IntegerPicker_ViewColor:
int ViewColor = a.getColor(attr, 0);
this.setBackgroundColor(ViewColor);
break;
case R.styleable.IntegerPicker_maxNrOfDigits:
int ems = a.getInteger(attr, 8);
etInteger.setEms(ems);
break;
case R.styleable.:
int padding = a.getInteger(attr, 10);
etInteger.setPadding(padding, padding, padding, padding);
break;
case R.styleable.IntegerPicker_NumberSize:
int NumberSize = a.getInteger(attr, 10);
etInteger.setTextSize(NumberSize);
break;
case R.styleable.IntegerPicker_TextAlignRight:
boolean textAlignRight = a.getBoolean(attr,false);
if(textAlignRight){
etInteger.setGravity(0x05);
}else{
etInteger.setGravity(0x03);
}
}
}
a.recycle();
}
How do i handle:
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.integer_picker, this, true);
and
case R.styleable.IntegerPicker_ViewColor:
int ViewColor = a.getColor(attr, 0);
this.setBackgroundColor(ViewColor);
Please help, i'm really at a loss here :S