Android
android.content.res
public final class

android.content.res.Resources.Theme

java.lang.Object
android.content.res.Resources.Theme

This class holds the current attribute values for a particular theme. In other words, a Theme is a set of values for resource attributes; these are used in conjunction with TypedArray to resolve the final value for an attribute.

The Theme's attributes come into play in two ways: (1) a styled attribute can explicit reference a value in the theme through the "?themeAttribute" syntax; (2) if no value has been defined for a particular styled attribute, as a last resort we will try to find that attribute's value in the Theme.

You will normally use the obtainStyledAttributes(AttributeSet, int[], int, int) APIs to retrieve XML attributes with style and theme information applied.

Summary

Public Methods

          void  applyStyle(int resid, boolean force)
Place new attribute values into the theme.
          void  dump(int priority, String tag, String prefix)
Print contents of this theme out to the log.
          TypedArray  obtainStyledAttributes(int resid, int[] attrs)
Return a StyledAttributes holding the values defined by the style resource resid which are listed in attrs.
          TypedArray  obtainStyledAttributes(int[] attrs)
Return a StyledAttributes holding the values defined by Theme which are listed in attrs.
          TypedArray  obtainStyledAttributes(AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes)
Return a StyledAttributes holding the attribute values in set that are listed in attrs.
          boolean  resolveAttribute(int resid, TypedValue outValue, boolean resolveRefs)
Retrieve the value of an attribute in the Theme.
          void  setTo(Resources.Theme other)
Set this theme to hold the same contents as the theme other.

Protected Methods

          void  finalize()
Called by the virtual machine when there are no longer any (non-weak) references to the receiver.
Methods inherited from class java.lang.Object

Details

Public Methods

public void applyStyle(int resid, boolean force)

Place new attribute values into the theme. The style resource specified by resid will be retrieved from this Theme's resources, its values placed into the Theme object.

The semantics of this function depends on the force argument: If false, only values that are not already defined in the theme will be copied from the system resource; otherwise, if any of the style's attributes are already defined in the theme, the current values in the theme will be overwritten.

Parameters

resid The resource ID of a style resource from which to obtain attribute values.
force If true, values in the style resource will always be used in the theme; otherwise, they will only be used if not already defined in the theme.

public void dump(int priority, String tag, String prefix)

Print contents of this theme out to the log. For debugging only.

Parameters

priority The log priority to use.
tag The log tag to use.
prefix Text to prefix each line printed.

public TypedArray obtainStyledAttributes(int resid, int[] attrs)

Return a StyledAttributes holding the values defined by the style resource resid which are listed in attrs.

Be sure to call StyledAttributes.recycle() when you are done with the array.

Parameters

resid The desired style resource.
attrs The desired attributes in the style.

Returns

  • Returns a TypedArray holding an array of the attribute values. Be sure to call TypedArray.recycle() when done with it.

Throws

Resources.NotFoundException Throws NotFoundException if the given ID does not exist.

public TypedArray obtainStyledAttributes(int[] attrs)

Return a StyledAttributes holding the values defined by Theme which are listed in attrs.

Be sure to call StyledAttributes.recycle() when you are done with the array.

Parameters

attrs The desired attributes.

Returns

  • Returns a TypedArray holding an array of the attribute values. Be sure to call TypedArray.recycle() when done with it.

Throws

Resources.NotFoundException Throws NotFoundException if the given ID does not exist.

public TypedArray obtainStyledAttributes(AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes)

Return a StyledAttributes holding the attribute values in set that are listed in attrs. In addition, if the given AttributeSet specifies a style class (through the "style" attribute), that style will be applied on top of the base attributes it defines.

Be sure to call StyledAttributes.recycle() when you are done with the array.

When determining the final value of a particular attribute, there are four inputs that come into play:

  1. Any attribute values in the given AttributeSet.
  2. The style resource specified in the AttributeSet (named "style").
  3. The default style specified by defStyleAttr and defStyleRes
  4. The base values in this theme.

Each of these inputs is considered in-order, with the first listed taking precedence over the following ones. In other words, if in the AttributeSet you have supplied <Button textColor="#ff000000">, then the button's text will always be black, regardless of what is specified in any of the styles.

Parameters

set The base set of attribute values. May be null.
attrs The desired attributes to be retrieved.
defStyleAttr An attribute in the current theme that contains a reference to a style resource that supplies defaults values for the StyledAttributes. Can be 0 to not look for defaults.
defStyleRes A resource identifier of a style resource that supplies default values for the StyledAttributes, used only if defStyleAttr is 0 or can not be found in the theme. Can be 0 to not look for defaults.

Returns

  • Returns a TypedArray holding an array of the attribute values. Be sure to call TypedArray.recycle() when done with it.

public boolean resolveAttribute(int resid, TypedValue outValue, boolean resolveRefs)

Retrieve the value of an attribute in the Theme. The contents of outValue are ultimately filled in by getValue(int, TypedValue, boolean).

Parameters

resid The resource identifier of the desired theme attribute.
outValue Filled in with the ultimate resource value supplied by the attribute.
resolveRefs If true, resource references will be walked; if false, outValue may be a TYPE_REFERENCE. In either case, it will never be a TYPE_ATTRIBUTE.

Returns

  • boolean Returns true if the attribute was found and outValue is valid, else false.

public void setTo(Resources.Theme other)

Set this theme to hold the same contents as the theme other. If both of these themes are from the same Resources object, they will be identical after this function returns. If they are from different Resources, only the resources they have in common will be set in this theme.

Parameters

other The existing Theme to copy from.

Protected Methods

protected void finalize()

Called by the virtual machine when there are no longer any (non-weak) references to the receiver. Subclasses can use this facility to guarantee that any associated resources are cleaned up before the receiver is garbage collected. Uncaught exceptions which are thrown during the running of the method cause it to terminate immediately, but are otherwise ignored.

Note: The virtual machine assumes that the implementation in class Object is empty.

Throws

Throwable
Copyright 2007 Google Inc. Build 0.9_r1-98467 - 14 Aug 2008 18:56