a_vcard.android.text
Class SpannableStringBuilder

java.lang.Object
  extended by a_vcard.android.text.SpannableStringBuilder
All Implemented Interfaces:
Editable, GetChars, Spannable, Spanned, java.lang.Appendable, java.lang.CharSequence

public class SpannableStringBuilder
extends java.lang.Object
implements Spannable, Editable

This is the class for text whose content and markup can both be changed.


Nested Class Summary
 
Nested classes/interfaces inherited from interface a_vcard.android.text.Editable
Editable.Factory
 
Field Summary
 
Fields inherited from interface a_vcard.android.text.Spanned
SPAN_COMPOSING, SPAN_EXCLUSIVE_EXCLUSIVE, SPAN_EXCLUSIVE_INCLUSIVE, SPAN_INCLUSIVE_EXCLUSIVE, SPAN_INCLUSIVE_INCLUSIVE, SPAN_INTERMEDIATE, SPAN_MARK_MARK, SPAN_MARK_POINT, SPAN_PARAGRAPH, SPAN_POINT_MARK, SPAN_POINT_MARK_MASK, SPAN_POINT_POINT, SPAN_PRIORITY, SPAN_PRIORITY_SHIFT, SPAN_USER, SPAN_USER_SHIFT
 
Constructor Summary
SpannableStringBuilder()
          Create a new SpannableStringBuilder with empty contents
SpannableStringBuilder(java.lang.CharSequence text)
          Create a new SpannableStringBuilder containing a copy of the specified text, including its spans if any.
SpannableStringBuilder(java.lang.CharSequence text, int start, int end)
          Create a new SpannableStringBuilder containing a copy of the specified slice of the specified text, including its spans if any.
 
Method Summary
 SpannableStringBuilder append(char text)
          Convenience for append(String.valueOf(text)).
 SpannableStringBuilder append(java.lang.CharSequence text)
          Convenience for replace(length(), length(), text, 0, text.length())
 SpannableStringBuilder append(java.lang.CharSequence text, int start, int end)
          Convenience for replace(length(), length(), text, start, end)
 char charAt(int where)
          Return the char at the specified offset within the buffer.
 void clear()
          Convenience for replace(0, length(), "", 0, 0)
 void clearSpans()
          Removes all spans from the Editable, as if by calling #removeSpan on each of them.
 SpannableStringBuilder delete(int start, int end)
          Convenience for replace(st, en, "", 0, 0)
 void getChars(int start, int end, char[] dest, int destoff)
          Copy the specified range of chars from this buffer into the specified array, beginning at the specified offset.
 InputFilter[] getFilters()
          Returns the array of input filters that are currently applied to changes to this Editable.
 int getSpanEnd(java.lang.Object what)
          Return the buffer offset of the end of the specified markup object, or -1 if it is not attached to this buffer.
 int getSpanFlags(java.lang.Object what)
          Return the flags of the end of the specified markup object, or 0 if it is not attached to this buffer.
<T> T[]
getSpans(int queryStart, int queryEnd, java.lang.Class<T> kind)
          Return an array of the spans of the specified type that overlap the specified range of the buffer.
 int getSpanStart(java.lang.Object what)
          Return the buffer offset of the beginning of the specified markup object, or -1 if it is not attached to this buffer.
 SpannableStringBuilder insert(int where, java.lang.CharSequence tb)
          Convenience for replace(where, where, text, 0, text.length());
 SpannableStringBuilder insert(int where, java.lang.CharSequence tb, int start, int end)
          Convenience for replace(where, where, text, start, end)
 int length()
          Return the number of chars in the buffer.
 int nextSpanTransition(int start, int limit, java.lang.Class kind)
          Return the next offset after start but less than or equal to limit where a span of the specified type begins or ends.
 void removeSpan(java.lang.Object what)
          Remove the specified markup object from the buffer.
 SpannableStringBuilder replace(int start, int end, java.lang.CharSequence tb)
          Convenience for replace(st, en, text, 0, text.length())
 SpannableStringBuilder replace(int start, int end, java.lang.CharSequence tb, int tbstart, int tbend)
          Replaces the specified range (st…en) of text in this Editable with a copy of the slice start…end from source.
 void setFilters(InputFilter[] filters)
          Sets the series of filters that will be called in succession whenever the text of this Editable is changed, each of which has the opportunity to limit or transform the text that is being inserted.
 void setSpan(java.lang.Object what, int start, int end, int flags)
          Mark the specified range of text with the specified object.
 java.lang.CharSequence subSequence(int start, int end)
          Return a new CharSequence containing a copy of the specified range of this buffer, including the overlapping spans.
 java.lang.String toString()
          Return a String containing a copy of the chars in this buffer.
static SpannableStringBuilder valueOf(java.lang.CharSequence source)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SpannableStringBuilder

public SpannableStringBuilder()
Create a new SpannableStringBuilder with empty contents


SpannableStringBuilder

public SpannableStringBuilder(java.lang.CharSequence text)
Create a new SpannableStringBuilder containing a copy of the specified text, including its spans if any.


SpannableStringBuilder

public SpannableStringBuilder(java.lang.CharSequence text,
                              int start,
                              int end)
Create a new SpannableStringBuilder containing a copy of the specified slice of the specified text, including its spans if any.

Method Detail

valueOf

public static SpannableStringBuilder valueOf(java.lang.CharSequence source)

charAt

public char charAt(int where)
Return the char at the specified offset within the buffer.

Specified by:
charAt in interface java.lang.CharSequence

length

public int length()
Return the number of chars in the buffer.

Specified by:
length in interface java.lang.CharSequence

insert

public SpannableStringBuilder insert(int where,
                                     java.lang.CharSequence tb,
                                     int start,
                                     int end)
Description copied from interface: Editable
Convenience for replace(where, where, text, start, end)

Specified by:
insert in interface Editable
See Also:
Editable.replace(int, int, CharSequence, int, int)

insert

public SpannableStringBuilder insert(int where,
                                     java.lang.CharSequence tb)
Description copied from interface: Editable
Convenience for replace(where, where, text, 0, text.length());

Specified by:
insert in interface Editable
See Also:
Editable.replace(int, int, CharSequence, int, int)

delete

public SpannableStringBuilder delete(int start,
                                     int end)
Description copied from interface: Editable
Convenience for replace(st, en, "", 0, 0)

Specified by:
delete in interface Editable
See Also:
Editable.replace(int, int, CharSequence, int, int)

clear

public void clear()
Description copied from interface: Editable
Convenience for replace(0, length(), "", 0, 0)

Specified by:
clear in interface Editable
See Also:
Note that this clears the text, not the spans; use {@link #clearSpans} if you need that.

clearSpans

public void clearSpans()
Description copied from interface: Editable
Removes all spans from the Editable, as if by calling #removeSpan on each of them.

Specified by:
clearSpans in interface Editable

append

public SpannableStringBuilder append(java.lang.CharSequence text)
Description copied from interface: Editable
Convenience for replace(length(), length(), text, 0, text.length())

Specified by:
append in interface Editable
Specified by:
append in interface java.lang.Appendable
See Also:
Editable.replace(int, int, CharSequence, int, int)

append

public SpannableStringBuilder append(java.lang.CharSequence text,
                                     int start,
                                     int end)
Description copied from interface: Editable
Convenience for replace(length(), length(), text, start, end)

Specified by:
append in interface Editable
Specified by:
append in interface java.lang.Appendable
See Also:
Editable.replace(int, int, CharSequence, int, int)

append

public SpannableStringBuilder append(char text)
Description copied from interface: Editable
Convenience for append(String.valueOf(text)).

Specified by:
append in interface Editable
Specified by:
append in interface java.lang.Appendable
See Also:
Editable.replace(int, int, CharSequence, int, int)

replace

public SpannableStringBuilder replace(int start,
                                      int end,
                                      java.lang.CharSequence tb)
Description copied from interface: Editable
Convenience for replace(st, en, text, 0, text.length())

Specified by:
replace in interface Editable
See Also:
Editable.replace(int, int, CharSequence, int, int)

replace

public SpannableStringBuilder replace(int start,
                                      int end,
                                      java.lang.CharSequence tb,
                                      int tbstart,
                                      int tbend)
Description copied from interface: Editable
Replaces the specified range (st…en) of text in this Editable with a copy of the slice start…end from source. The destination slice may be empty, in which case the operation is an insertion, or the source slice may be empty, in which case the operation is a deletion.

Before the change is committed, each filter that was set with Editable.setFilters(a_vcard.android.text.InputFilter[]) is given the opportunity to modify the source text.

If source is Spanned, the spans from it are preserved into the Editable. Existing spans within the Editable that entirely cover the replaced range are retained, but any that were strictly within the range that was replaced are removed. As a special case, the cursor position is preserved even when the entire range where it is located is replaced.

Specified by:
replace in interface Editable
Returns:
a reference to this object.

setSpan

public void setSpan(java.lang.Object what,
                    int start,
                    int end,
                    int flags)
Mark the specified range of text with the specified object. The flags determine how the span will behave when text is inserted at the start or end of the span's range.

Specified by:
setSpan in interface Spannable

removeSpan

public void removeSpan(java.lang.Object what)
Remove the specified markup object from the buffer.

Specified by:
removeSpan in interface Spannable

getSpanStart

public int getSpanStart(java.lang.Object what)
Return the buffer offset of the beginning of the specified markup object, or -1 if it is not attached to this buffer.

Specified by:
getSpanStart in interface Spanned

getSpanEnd

public int getSpanEnd(java.lang.Object what)
Return the buffer offset of the end of the specified markup object, or -1 if it is not attached to this buffer.

Specified by:
getSpanEnd in interface Spanned

getSpanFlags

public int getSpanFlags(java.lang.Object what)
Return the flags of the end of the specified markup object, or 0 if it is not attached to this buffer.

Specified by:
getSpanFlags in interface Spanned

getSpans

public <T> T[] getSpans(int queryStart,
                        int queryEnd,
                        java.lang.Class<T> kind)
Return an array of the spans of the specified type that overlap the specified range of the buffer. The kind may be Object.class to get a list of all the spans regardless of type.

Specified by:
getSpans in interface Spanned

nextSpanTransition

public int nextSpanTransition(int start,
                              int limit,
                              java.lang.Class kind)
Return the next offset after start but less than or equal to limit where a span of the specified type begins or ends.

Specified by:
nextSpanTransition in interface Spanned

subSequence

public java.lang.CharSequence subSequence(int start,
                                          int end)
Return a new CharSequence containing a copy of the specified range of this buffer, including the overlapping spans.

Specified by:
subSequence in interface java.lang.CharSequence

getChars

public void getChars(int start,
                     int end,
                     char[] dest,
                     int destoff)
Copy the specified range of chars from this buffer into the specified array, beginning at the specified offset.

Specified by:
getChars in interface GetChars

toString

public java.lang.String toString()
Return a String containing a copy of the chars in this buffer.

Specified by:
toString in interface java.lang.CharSequence
Overrides:
toString in class java.lang.Object

setFilters

public void setFilters(InputFilter[] filters)
Description copied from interface: Editable
Sets the series of filters that will be called in succession whenever the text of this Editable is changed, each of which has the opportunity to limit or transform the text that is being inserted.

Specified by:
setFilters in interface Editable

getFilters

public InputFilter[] getFilters()
Description copied from interface: Editable
Returns the array of input filters that are currently applied to changes to this Editable.

Specified by:
getFilters in interface Editable