我几乎尝试了所有搜索过的方法。但对于像TouchPal这样的键盘,Swype这些方法都不起作用。
imeOptions
<EditText android:imeOptions="actionSend"/>
setOnKeyListener
dispatchKeyEvent
onEditorAction
我也找到了这个Enter key listener for Google keyboard is not working
所以我使用它,它确实有效。
if (isPressEnterSendMsg) {
if (s == null)
return;
String str = s.toString().substring(start, start + count);
if (str.equals("\n")) {
chatEditContent.setText(s.toString().replaceFirst("\n", ""));
chatSendButton.performClick();
return;
}
}
通过app测试,当我输入正常消息包含小表达式时,我发现它没关系,当包含SpannableString时按Enter键,方法onTextChanged中的s(CharSequence s,int start,int before,int count)将为“”
然后我发现我无法在onTextChanged方法中设置setText,我搜索了agin,我可以在onTextChanged中删除TextChangedListener然后添加文本变量,但是没有工作......
所以我想问一下我能做的其他解决方案吗?
谢谢!