Interface AttributeSet
-
public interface AttributeSetA collection of attributes, as found associated with a tag in an XML document. Often you will not want to use this interface directly, instead passing it toResources.Theme.obtainStyledAttributes()which will take care of parsing the attributes for you. In particular, the Resources API will convert resource references (attribute values such as "@string/my_label" in the original XML) to the desired type for you; if you use AttributeSet directly then you will need to manually check for resource references (withgetAttributeResourceValue(int, int)) and do the resource lookup yourself if needed. Direct use of AttributeSet also prevents the application of themes and styles when retrieving attribute values.This interface provides an efficient mechanism for retrieving data from compiled XML files, which can be retrieved for a particular XmlPullParser through
Xml.asAttributeSet(). Normally this will return an implementation of the interface that works on top of a generic XmlPullParser, however it is more useful in conjunction with compiled XML resources:XmlPullParser parser = resources.getXml(myResource); AttributeSet attributes = Xml.asAttributeSet(parser);
The implementation returned here, unlike using the implementation on top of a generic XmlPullParser, is highly optimized by retrieving pre-computed information that was generated by aapt when compiling your resources. For example, the
getAttributeFloatValue(int, float)method returns a floating point number previous stored in the compiled resource instead of parsing at runtime the string originally in the XML file.This interface also provides additional information contained in the compiled XML resource that is not available in a normal XML file, such as
getAttributeNameResource(int)which returns the resource identifier associated with a particular XML attribute name.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleangetAttributeBooleanValue(int index, boolean defaultValue)Return the boolean value of attribute at 'index'.booleangetAttributeBooleanValue(String namespace, String attribute, boolean defaultValue)Return the boolean value of 'attribute'.intgetAttributeCount()Returns the number of attributes available in the set.floatgetAttributeFloatValue(int index, float defaultValue)Return the float value of attribute at 'index'.floatgetAttributeFloatValue(String namespace, String attribute, float defaultValue)Return the float value of 'attribute'.intgetAttributeIntValue(int index, int defaultValue)Return the integer value of attribute at 'index'.intgetAttributeIntValue(String namespace, String attribute, int defaultValue)Return the integer value of 'attribute'.intgetAttributeListValue(int index, String[] options, int defaultValue)Return the index of the value of attribute at 'index' in the list 'options'.intgetAttributeListValue(String namespace, String attribute, String[] options, int defaultValue)Return the index of the value of 'attribute' in the list 'options'.StringgetAttributeName(int index)Returns the name of the specified attribute.intgetAttributeNameResource(int index)Return the resource ID associated with the given attribute name.intgetAttributeResourceValue(int index, int defaultValue)Return the value of attribute at 'index' as a resource identifier.intgetAttributeResourceValue(String namespace, String attribute, int defaultValue)Return the value of 'attribute' as a resource identifier.intgetAttributeUnsignedIntValue(int index, int defaultValue)Return the integer value of attribute at 'index' that is formatted as an unsigned value.intgetAttributeUnsignedIntValue(String namespace, String attribute, int defaultValue)Return the boolean value of 'attribute' that is formatted as an unsigned value.StringgetAttributeValue(int index)Returns the value of the specified attribute as a string representation.StringgetAttributeValue(String namespace, String name)Returns the value of the specified attribute as a string representation.StringgetClassAttribute()Return the value of the "class" attribute or null if there is not one.StringgetIdAttribute()Return the value of the "id" attribute or null if there is not one.intgetIdAttributeResourceValue(int defaultValue)Return the integer value of the "id" attribute or defaultValue if there is none.StringgetPositionDescription()Returns a description of the current position of the attribute set.intgetStyleAttribute()Return the value of the "style" attribute or 0 if there is not one.
-
-
-
Method Detail
-
getAttributeCount
int getAttributeCount()
Returns the number of attributes available in the set.- Returns:
- A positive integer, or 0 if the set is empty.
-
getAttributeName
String getAttributeName(int index)
Returns the name of the specified attribute.- Parameters:
index- Index of the desired attribute, 0...count-1.- Returns:
- A String containing the name of the attribute, or null if the attribute cannot be found.
-
getAttributeValue
String getAttributeValue(int index)
Returns the value of the specified attribute as a string representation.- Parameters:
index- Index of the desired attribute, 0...count-1.- Returns:
- A String containing the value of the attribute, or null if the attribute cannot be found.
-
getAttributeValue
String getAttributeValue(String namespace, String name)
Returns the value of the specified attribute as a string representation. The lookup is performed using the attribute name.- Parameters:
namespace- The namespace of the attribute to get the value from.name- The name of the attribute to get the value from.- Returns:
- A String containing the value of the attribute, or null if the attribute cannot be found.
-
getPositionDescription
String getPositionDescription()
Returns a description of the current position of the attribute set. For instance, if the attribute set is loaded from an XML document, the position description could indicate the current line number.- Returns:
- A string representation of the current position in the set, may be null.
-
getAttributeNameResource
int getAttributeNameResource(int index)
Return the resource ID associated with the given attribute name. This will be the identifier for an attribute resource, which can be used by styles. Returns 0 if there is no resource associated with this attribute.Note that this is different than
getAttributeResourceValue(java.lang.String, java.lang.String, int)in that it returns a resource identifier for the attribute name; the other method returns this attribute's value as a resource identifier.- Parameters:
index- Index of the desired attribute, 0...count-1.- Returns:
- The resource identifier, 0 if none.
-
getAttributeListValue
int getAttributeListValue(String namespace, String attribute, String[] options, int defaultValue)
Return the index of the value of 'attribute' in the list 'options'.- Parameters:
namespace- Namespace of attribute to retrieve.attribute- Name of attribute to retrieve.options- List of strings whose values we are checking against.defaultValue- Value returned if attribute doesn't exist or no match is found.- Returns:
- Index in to 'options' or defaultValue.
-
getAttributeBooleanValue
boolean getAttributeBooleanValue(String namespace, String attribute, boolean defaultValue)
Return the boolean value of 'attribute'.- Parameters:
namespace- Namespace of attribute to retrieve.attribute- The attribute to retrieve.defaultValue- What to return if the attribute isn't found.- Returns:
- Resulting value.
-
getAttributeResourceValue
int getAttributeResourceValue(String namespace, String attribute, int defaultValue)
Return the value of 'attribute' as a resource identifier.Note that this is different than
getAttributeNameResource(int)in that it returns the value contained in this attribute as a resource identifier (i.e., a value originally of the form "@package:type/resource"); the other method returns a resource identifier that identifies the name of the attribute.- Parameters:
namespace- Namespace of attribute to retrieve.attribute- The attribute to retrieve.defaultValue- What to return if the attribute isn't found.- Returns:
- Resulting value.
-
getAttributeIntValue
int getAttributeIntValue(String namespace, String attribute, int defaultValue)
Return the integer value of 'attribute'.- Parameters:
namespace- Namespace of attribute to retrieve.attribute- The attribute to retrieve.defaultValue- What to return if the attribute isn't found.- Returns:
- Resulting value.
-
getAttributeUnsignedIntValue
int getAttributeUnsignedIntValue(String namespace, String attribute, int defaultValue)
Return the boolean value of 'attribute' that is formatted as an unsigned value. In particular, the formats 0xn...n and #n...n are handled.- Parameters:
namespace- Namespace of attribute to retrieve.attribute- The attribute to retrieve.defaultValue- What to return if the attribute isn't found.- Returns:
- Resulting value.
-
getAttributeFloatValue
float getAttributeFloatValue(String namespace, String attribute, float defaultValue)
Return the float value of 'attribute'.- Parameters:
namespace- Namespace of attribute to retrieve.attribute- The attribute to retrieve.defaultValue- What to return if the attribute isn't found.- Returns:
- Resulting value.
-
getAttributeListValue
int getAttributeListValue(int index, String[] options, int defaultValue)Return the index of the value of attribute at 'index' in the list 'options'.- Parameters:
index- Index of the desired attribute, 0...count-1.options- List of strings whose values we are checking against.defaultValue- Value returned if attribute doesn't exist or no match is found.- Returns:
- Index in to 'options' or defaultValue.
-
getAttributeBooleanValue
boolean getAttributeBooleanValue(int index, boolean defaultValue)Return the boolean value of attribute at 'index'.- Parameters:
index- Index of the desired attribute, 0...count-1.defaultValue- What to return if the attribute isn't found.- Returns:
- Resulting value.
-
getAttributeResourceValue
int getAttributeResourceValue(int index, int defaultValue)Return the value of attribute at 'index' as a resource identifier.Note that this is different than
getAttributeNameResource(int)in that it returns the value contained in this attribute as a resource identifier (i.e., a value originally of the form "@package:type/resource"); the other method returns a resource identifier that identifies the name of the attribute.- Parameters:
index- Index of the desired attribute, 0...count-1.defaultValue- What to return if the attribute isn't found.- Returns:
- Resulting value.
-
getAttributeIntValue
int getAttributeIntValue(int index, int defaultValue)Return the integer value of attribute at 'index'.- Parameters:
index- Index of the desired attribute, 0...count-1.defaultValue- What to return if the attribute isn't found.- Returns:
- Resulting value.
-
getAttributeUnsignedIntValue
int getAttributeUnsignedIntValue(int index, int defaultValue)Return the integer value of attribute at 'index' that is formatted as an unsigned value. In particular, the formats 0xn...n and #n...n are handled.- Parameters:
index- Index of the desired attribute, 0...count-1.defaultValue- What to return if the attribute isn't found.- Returns:
- Resulting value.
-
getAttributeFloatValue
float getAttributeFloatValue(int index, float defaultValue)Return the float value of attribute at 'index'.- Parameters:
index- Index of the desired attribute, 0...count-1.defaultValue- What to return if the attribute isn't found.- Returns:
- Resulting value.
-
getIdAttribute
String getIdAttribute()
Return the value of the "id" attribute or null if there is not one. Equivalent to getAttributeValue(null, "id").- Returns:
- The id attribute's value or null.
-
getClassAttribute
String getClassAttribute()
Return the value of the "class" attribute or null if there is not one. Equivalent to getAttributeValue(null, "class").- Returns:
- The class attribute's value or null.
-
getIdAttributeResourceValue
int getIdAttributeResourceValue(int defaultValue)
Return the integer value of the "id" attribute or defaultValue if there is none. Equivalent to getAttributeResourceValue(null, "id", defaultValue);- Parameters:
defaultValue- What to return if the "id" attribute isn't found.- Returns:
- int Resulting value.
-
getStyleAttribute
int getStyleAttribute()
Return the value of the "style" attribute or 0 if there is not one. Equivalent to getAttributeResourceValue(null, "style").- Returns:
- The style attribute's resource identifier or 0.
-
-