# Android Editable

EditText View的getText直接返回的就是 Editable

* Replaces the specified range (<code>st&hellip;en</code>) of text in this
* Editable with a copy of the slice <code>start&hellip;end</code> from
* <code>source</code>.  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.

replace 在 没有选中内容时 表现为 insert操作,

replace/insert 的String 参数 不能为空.

## android.text 接口 Editable

Appendable, CharSequence, GetChars, Spannable, Spanned

SpannableStringBuilder

public interface Editable
extends CharSequence, GetChars, Spannable, Appendable

This is the interface for text whose content and markup can be changed (as opposed to immutable text like Strings). If you make a DynamicLayout of an Editable, the layout will be reflowed as the text is changed.

static class Editable.Factory
Factory used by TextView to create new Editables.

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

 Editable append(char text)
Convenience for append(String.valueOf(text)).
 Editable append(CharSequence text)
Convenience for replace(length(), length(), text, 0, text.length())
 Editable append(CharSequence text, int start, int end)
Convenience for replace(length(), length(), text, start, end)
 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.
 Editable delete(int st, int en)
Convenience for replace(st, en, "", 0, 0)
 InputFilter[] getFilters()
Returns the array of input filters that are currently applied to changes to this Editable.
 Editable insert(int where, CharSequence text)
Convenience for replace(where, where, text, 0, text.length());
 Editable insert(int where, CharSequence text, int start, int end)
Convenience for replace(where, where, text, start, end)
 Editable replace(int st, int en, CharSequence text)
Convenience for replace(st, en, text, 0, text.length())
 Editable replace(int st, int en, CharSequence source, int start, int end)
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.

getChars

removeSpan, setSpan

getSpanEnd, getSpanFlags, getSpans, getSpanStart, nextSpanTransition

charAt, length, subSequence, toString

### replace

Editable replace(int st,
int en,
CharSequence source,
int start,
int end)
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 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.

a reference to this object.

### replace

Editable replace(int st,
int en,
CharSequence text)
Convenience for replace(st, en, text, 0, text.length())

replace(int, int, CharSequence, int, int)

### insert

Editable insert(int where,
CharSequence text,
int start,
int end)
Convenience for replace(where, where, text, start, end)

replace(int, int, CharSequence, int, int)

### insert

Editable insert(int where,
CharSequence text)
Convenience for replace(where, where, text, 0, text.length());

replace(int, int, CharSequence, int, int)

### delete

Editable delete(int st,
int en)
Convenience for replace(st, en, "", 0, 0)

replace(int, int, CharSequence, int, int)

### append

Editable append(CharSequence text)
Convenience for replace(length(), length(), text, 0, text.length())

text - the character sequence to append.

this Appendable.

replace(int, int, CharSequence, int, int)

### append

Editable append(CharSequence text,
int start,
int end)
Convenience for replace(length(), length(), text, start, end)

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.

this Appendable.

replace(int, int, CharSequence, int, int)

### append

Editable append(char text)
Convenience for append(String.valueOf(text)).

text - the character to append.

this Appendable.

replace(int, int, CharSequence, int, int)

### clear

void clear()
Convenience for replace(0, length(), "", 0, 0)

Note that this clears the text, not the spans; use {@link #clearSpans} if you need that.

### clearSpans

void clearSpans()
Removes all spans from the Editable, as if by calling Spannable.removeSpan(java.lang.Object) on each of them.

### setFilters

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.

### getFilters

InputFilter[] getFilters()
Returns the array of input filters that are currently appliedto changes to this Editable.

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客