How to define an array of integers in a declare-styleable?

I'm implementing my own <declare-styleable> for a custom View (following the instructions here). I'd like to be able to specify an array of integers as one of the possible XML attributes. How do I:

  1. Specify the integer array as an XML attribute in attrs.xml?
  2. Get it from the TypedArray after calling obtainStyledAttributes() in my custom View?

Answers


  1. You can declare it as a reference.

    <declare-styleable name="MyView">
        <attr name="array" format="reference"/>
    </declare-styleable>
    
  2. It looks like TypeArray hasn't getIntArray method so you have to get it directly from the resources.

    final TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView);
    final int id = array.getResourceId(R.styleable.MyView_array, 0);
    
    if (id != 0) {
        final int[] values = getResources().getIntArray(id);
    }
    
    array.recycle()
    

Need Your Help

Foreach loop in java for a custom object list

java foreach arraylist

I have an ArrayList for type Room (my custom object) Defined as below

How can I simulate mouse events from code?

c windows winapi mouse mouseevent

I would like to simulate mouse events using the Win32 API; how can I do it?