Android 如果在EditText中的跨距文本之前添加了一些文本,如何自动更改跨距位置?
我正在创建一个应用程序,其中edittext将样式范围添加到文本的某些位置Android 如果在EditText中的跨距文本之前添加了一些文本,如何自动更改跨距位置?,android,spannablestring,spannable,spanned,android-editable,Android,Spannablestring,Spannable,Spanned,Android Editable,我正在创建一个应用程序,其中edittext将样式范围添加到文本的某些位置 editable.setSpan(new StyleSpan(Typeface.BOLD), start, start+replacement.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 我的问题是,如果用户添加,在跨距文本样式之前的一些文本或空白将被删除,如何避免 int SPAN_COMPOSING = 256; int SPAN_EXCLUSIVE_EX
editable.setSpan(new StyleSpan(Typeface.BOLD), start, start+replacement.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
我的问题是,如果用户添加,在跨距文本样式之前的一些文本或空白将被删除,如何避免
int SPAN_COMPOSING = 256;
int SPAN_EXCLUSIVE_EXCLUSIVE = 33;
int SPAN_EXCLUSIVE_INCLUSIVE = 34;
int SPAN_INCLUSIVE_EXCLUSIVE = 17;
int SPAN_INCLUSIVE_INCLUSIVE = 18;
int SPAN_INTERMEDIATE = 512;
int SPAN_MARK_MARK = 17;
int SPAN_MARK_POINT = 18;
int SPAN_PARAGRAPH = 51;
int SPAN_POINT_MARK = 33;
int SPAN_POINT_MARK_MASK = 51;
int SPAN_POINT_POINT = 34;
int SPAN_PRIORITY = 16711680;
int SPAN_PRIORITY_SHIFT = 16;
int SPAN_USER = -16777216;
int SPAN_USER_SHIFT = 24;
在我的案例中需要使用哪种类型?您可以使用下面的代码
editable.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// here is your code to change position
}
@Override
public void afterTextChanged(Editable s) {
}
});
使用TextWatcher。每次文本更改时,您都会收到一个回调。在那里使用setSpan。你能再次阅读我的问题吗?我知道这可能有点晚了,但你应该首先确保你的跨距是可编辑的。长度。如果你不想跨距向左或向右扩展,排他(EXCLUSIVE)是最好的。但是,如果你跨越的是一个单词的一部分,而这个单词只是愚蠢。你可以通过禁用自动更正
android:inputType=“textMultiLine | textcap句子| textShortMessage | textVisiblePassword”
在EditText Xml中,请详细说明,或者如果可能的话,在它的图像之前和之后发送给我。