首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本在ImageSpan中被EditText搞乱

文本在ImageSpan中被EditText搞乱
EN

Stack Overflow用户
提问于 2012-12-13 20:21:02
回答 2查看 5.9K关注 0票数 8

我正在建立一个简单的聊天应用程序,用户有能力发送文本和表情。我可以把短信和表情都发到另一部手机。我的问题是:

1.当我键入某些内容并添加一个表情符号:

然后我就不能在图像之前和之后键入任何文本。我可以在字母"o“之前写。系统“看到”了我输入的内容,所以即使我在微笑后键入“蜜”,我也看不到它,但是EditText注册了它,并发送了消息:

2.当我在编辑文本中添加一个表情符号,然后删除它时,我不能输入任何内容,因为删除的表情符号会出现。它只出现一次,所以不管我输入了多少字符,EditText看起来就像我删除表情符号之前的样子,但是文本发送时没有表情符号,就像在所有三种情况下一样。

3.当我在EditText中键入“某事”时,在“some”之后插入一个表情符号:

然后我把光标放在表情符号后面,然后删除它,剩下的是:

但是,当我按下“发送”按钮时,就会发送正确的消息:

这就是表情符号的按钮侦听器中的内容(当我单击这个表情符号将它添加到EditText中时,这个方法就被激活了)。

代码语言:javascript
复制
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();
    }
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-14 16:22:30

我找到了解决办法。我所要做的就是把Spannable.SPAN_INCLUSIVE_INCLUSIVE改为Spannable.SPAN_EXCLUSIVE_EXCLUSIVE

票数 6
EN

Stack Overflow用户

发布于 2012-12-13 20:40:26

我会在编辑文本中添加一个文本处理程序,并观察用户类型,这样我就可以重新定位图像/设置文本/作出更正/验证输入/等等。

代码语言:javascript
复制
editText.addTextChangedListener(textWatcher);

textWatcher = new TextWatcher() {
    public void afterTextChanged(Editable s) {
        //editText.doStuffHere
        //reposition your image/etc.
    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
    public void onTextChanged(CharSequence s, int start, int before, int count) { }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13867815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档