public class SpannableStringBuilder extends Object implements CharSequence, GetChars, Spannable, Editable, Appendable, GraphicsOperations
Editable.Factory
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 and Description |
---|
SpannableStringBuilder()
Create a new SpannableStringBuilder with empty contents
|
SpannableStringBuilder(CharSequence text)
Create a new SpannableStringBuilder containing a copy of the
specified text, including its spans if any.
|
SpannableStringBuilder(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.
|
Modifier and Type | Method and Description |
---|---|
SpannableStringBuilder |
append(char text)
Convenience for append(String.valueOf(text)).
|
SpannableStringBuilder |
append(CharSequence text)
Convenience for replace(length(), length(), text, 0, text.length())
|
SpannableStringBuilder |
append(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
Spannable.removeSpan(java.lang.Object) on each of them. |
SpannableStringBuilder |
delete(int start,
int end)
Convenience for replace(st, en, "", 0, 0)
|
void |
drawText(Canvas c,
int start,
int end,
float x,
float y,
Paint p)
Don't call this yourself -- exists for Canvas to use internally.
|
void |
drawTextRun(Canvas c,
int start,
int end,
int contextStart,
int contextEnd,
float x,
float y,
int flags,
Paint p)
Don't call this yourself -- exists for Canvas to use internally.
|
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(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(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,
Class<T> kind)
Return an array of the spans of the specified type that overlap
the specified range of the buffer.
|
int |
getSpanStart(Object what)
Return the buffer offset of the beginning of the specified
markup object, or -1 if it is not attached to this buffer.
|
float |
getTextRunAdvances(int start,
int end,
int contextStart,
int contextEnd,
int flags,
float[] advances,
int advancesPos,
Paint p)
Don't call this yourself -- exists for Paint to use internally.
|
float |
getTextRunAdvances(int start,
int end,
int contextStart,
int contextEnd,
int flags,
float[] advances,
int advancesPos,
Paint p,
int reserved)
Don't call this yourself -- exists for Paint to use internally.
|
int |
getTextRunCursor(int contextStart,
int contextEnd,
int flags,
int offset,
int cursorOpt,
Paint p)
Deprecated.
This is an internal method, refrain from using it in your code
|
int |
getTextWidths(int start,
int end,
float[] widths,
Paint p)
Don't call this yourself -- exists for Paint to use internally.
|
SpannableStringBuilder |
insert(int where,
CharSequence tb)
Convenience for replace(where, where, text, 0, text.length());
|
SpannableStringBuilder |
insert(int where,
CharSequence tb,
int start,
int end)
Convenience for replace(where, where, text, start, end)
|
int |
length()
Return the number of chars in the buffer.
|
float |
measureText(int start,
int end,
Paint p)
Don't call this yourself -- exists for Paint to use internally.
|
int |
nextSpanTransition(int start,
int limit,
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(Object what)
Remove the specified markup object from the buffer.
|
SpannableStringBuilder |
replace(int start,
int end,
CharSequence tb)
Convenience for replace(st, en, text, 0, text.length())
|
SpannableStringBuilder |
replace(int start,
int end,
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(Object what,
int start,
int end,
int flags)
Mark the specified range of text with the specified object.
|
CharSequence |
subSequence(int start,
int end)
Return a new CharSequence containing a copy of the specified
range of this buffer, including the overlapping spans.
|
String |
substring(int start,
int end)
Return a String containing a copy of the chars in this buffer, limited to the
[start, end[ range.
|
String |
toString()
Return a String containing a copy of the chars in this buffer.
|
static SpannableStringBuilder |
valueOf(CharSequence source) |
public SpannableStringBuilder()
public SpannableStringBuilder(CharSequence text)
public SpannableStringBuilder(CharSequence text, int start, int end)
public static SpannableStringBuilder valueOf(CharSequence source)
public char charAt(int where)
charAt
in interface CharSequence
where
- the index of the character to return.public int length()
length
in interface CharSequence
public SpannableStringBuilder insert(int where, CharSequence tb, int start, int end)
Editable
insert
in interface Editable
Editable.replace(int, int, CharSequence, int, int)
public SpannableStringBuilder insert(int where, CharSequence tb)
Editable
insert
in interface Editable
Editable.replace(int, int, CharSequence, int, int)
public SpannableStringBuilder delete(int start, int end)
Editable
delete
in interface Editable
Editable.replace(int, int, CharSequence, int, int)
public void clear()
Editable
clear
in interface Editable
Note that this clears the text, not the spans;
use {@link #clearSpans} if you need that.
public void clearSpans()
Editable
Spannable.removeSpan(java.lang.Object)
on each of them.clearSpans
in interface Editable
public SpannableStringBuilder append(CharSequence text)
Editable
append
in interface Editable
append
in interface Appendable
text
- the character sequence to append.Appendable
.Editable.replace(int, int, CharSequence, int, int)
public SpannableStringBuilder append(CharSequence text, int start, int end)
Editable
append
in interface Editable
append
in interface Appendable
text
- the character sequence to append.start
- the first index of the subsequence of csq
that is
appended.end
- the last index of the subsequence of csq
that is
appended.Appendable
.Editable.replace(int, int, CharSequence, int, int)
public SpannableStringBuilder append(char text)
Editable
append
in interface Editable
append
in interface Appendable
text
- the character to append.Appendable
.Editable.replace(int, int, CharSequence, int, int)
public SpannableStringBuilder replace(int start, int end, CharSequence tb)
Editable
replace
in interface Editable
Editable.replace(int, int, CharSequence, int, int)
public SpannableStringBuilder replace(int start, int end, CharSequence tb, int tbstart, int tbend)
Editable
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(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.
public void setSpan(Object what, int start, int end, int flags)
public void removeSpan(Object what)
removeSpan
in interface Spannable
public int getSpanStart(Object what)
getSpanStart
in interface Spanned
public int getSpanEnd(Object what)
getSpanEnd
in interface Spanned
public int getSpanFlags(Object what)
getSpanFlags
in interface Spanned
public <T> T[] getSpans(int queryStart, int queryEnd, Class<T> kind)
public int nextSpanTransition(int start, int limit, Class kind)
start
but less than or
equal to limit
where a span of the specified type
begins or ends.nextSpanTransition
in interface Spanned
public CharSequence subSequence(int start, int end)
subSequence
in interface CharSequence
start
- the start offset of the sub-sequence. It is inclusive, that
is, the index of the first character that is included in the
sub-sequence.end
- the end offset of the sub-sequence. It is exclusive, that is,
the index of the first character after those that are included
in the sub-sequencepublic void getChars(int start, int end, char[] dest, int destoff)
public String toString()
toString
in interface CharSequence
toString
in class Object
public String substring(int start, int end)
public void drawText(Canvas c, int start, int end, float x, float y, Paint p)
drawText
in interface GraphicsOperations
public void drawTextRun(Canvas c, int start, int end, int contextStart, int contextEnd, float x, float y, int flags, Paint p)
drawTextRun
in interface GraphicsOperations
public float measureText(int start, int end, Paint p)
measureText
in interface GraphicsOperations
public int getTextWidths(int start, int end, float[] widths, Paint p)
getTextWidths
in interface GraphicsOperations
public float getTextRunAdvances(int start, int end, int contextStart, int contextEnd, int flags, float[] advances, int advancesPos, Paint p)
getTextRunAdvances
in interface GraphicsOperations
public float getTextRunAdvances(int start, int end, int contextStart, int contextEnd, int flags, float[] advances, int advancesPos, Paint p, int reserved)
getTextRunAdvances
in interface GraphicsOperations
@Deprecated public int getTextRunCursor(int contextStart, int contextEnd, int flags, int offset, int cursorOpt, Paint p)
The context is the shaping context for cursor movement, generally the bounds of the metric
span enclosing the cursor in the direction of movement.
contextStart
, contextEnd
and offset
are relative to
the start of the string.
If cursorOpt is CURSOR_AT and the offset is not a valid cursor position, this returns -1. Otherwise this will never return a value before contextStart or after contextEnd.
getTextRunCursor
in interface GraphicsOperations
contextStart
- the start index of the contextcontextEnd
- the (non-inclusive) end index of the contextflags
- either DIRECTION_RTL or DIRECTION_LTRoffset
- the cursor position to move fromcursorOpt
- how to move the cursor, one of CURSOR_AFTER,
CURSOR_AT_OR_AFTER, CURSOR_BEFORE,
CURSOR_AT_OR_BEFORE, or CURSOR_ATp
- the Paint object that is requesting this informationpublic void setFilters(InputFilter[] filters)
Editable
setFilters
in interface Editable
public InputFilter[] getFilters()
Editable
getFilters
in interface Editable