我正在構建一個簡單的聊天應用程序,用戶可以在其中發送文本和圖釋。我可以將文字和表情圖案發送到另一部手機。我的問題是:文本與EditText中的ImageSpan混淆
1.當我輸入一些東西並添加表情符號:
那麼我就不能正確之前,右圖像後鍵入任何文本。我可以在「o」字母前寫字。該系統「看到」我的類型,所以即使我鍵入「親愛的」笑臉後,我還看不出來,但登記的EditText併發送消息:
2.當我只向Edittext添加一個圖釋,然後刪除它,因爲刪除的圖釋出現,我無法輸入任何內容。它只出現一次,所以無論我輸入多少個字符,EditText看起來就像我刪除表情符號之前,但是文本沒有表情符號發送,就像在所有三種情況下一樣。
3.當我鍵入的EditText「東西」,然後「一些」後插入表情:
然後我把光標的表情後,並刪除它,這裏還剩下什麼:
但是,當我按下發送按鈕發送正確的消息:
這就是表情符號的按鈕,監聽器裏有什麼(當我點擊的表情,將其添加到的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();
}
});
您可以在哪裏修復它? – noxius
是的,我在你接受的答案中看到 – erdomester