erd*_*ter 8 android android-edittext spannablestring spannable
我正在构建一个简单的聊天应用程序,用户可以在其中发送文本和表情符号.我可以将文字和表情符号发送到另一部手机.我的问题是:
1.当我输入内容并添加表情符号时:
然后我无法在图像之前和之后输入任何文本.我可以在"o"字母前面写.系统"看到"我输入的内容,所以即使我在笑脸后输入"Honey",我也看不到它,但EditText会注册它并发送消息:
2.当我向Edittext添加一个表情符号然后删除它时,我无法输入任何内容,因为删除的表情符号出现了.它只出现一次,所以无论我输入多少个字符,EditText看起来就像我删除表情符号之前,但文本是在没有表情符号的情况下发送的,就像在所有三种情况下一样.
3.当我在EditText中输入"something"时,在"some"之后插入一个表情符号:
然后我将光标放在表情符号后面并删除它,这里剩下的是:
但是当我按下发送按钮时会发送正确的消息:
这就是表情符号按钮监听器内部的内容(当我单击表情符号将其添加到EditText时,此方法被激活).
ib_happy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int cursorPosition = mOutEditText.getSelectionStart();
mOutEditText.getText().insert(cursorPosition, smileys[0]);
SpannableStringBuilder ssb = new SpannableStringBuilder(mOutEditText.getText());
ssb.setSpan(new ImageSpan(bitmapArray.get(0), ImageSpan.ALIGN_BASELINE), cursorPosition, cursorPosition+2, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
mOutEditText.setText(ssb, BufferType.SPANNABLE);
mOutEditText.setSelection(cursorPosition+2);
dialog_emoticon.dismiss();
}
});
Run Code Online (Sandbox Code Playgroud)
我找到了解决方案.我所要做的就是改变 Spannable.SPAN_INCLUSIVE_INCLUSIVE
以Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
归档时间: |
|
查看次数: |
5663 次 |
最近记录: |