作者ptthao (优文保证)
看板AndroidDev
标题[问题] EditText部分文字变色
时间Mon Jun 27 22:53:32 2016
我想做类似FB Tag的功能
当使用者输入#+文字的时候
#後面的文字会变色 直到使用者输入空白、特殊字元或换行为止
我目前的做法是继承EditText然後实作onTextChanged
使用正则找到符合输入规则的字
再用SpannableString setSpan做变色
最後setText(spannableString);
我用asus测试都没问题
但是...用htc就QQ
http://i.imgur.com/pmaiY69.jpg
asus的输入是选完字才会输入到EditText里 才会跑onTextChanged
但是htc却是每按任何一个字都会输入到EditText
也就是我可能打"ㄏ"
根本还没选字 EditText里面已经输入"ㄏ"的第一个字 (如: "哈")
所以就会进到onTextChanged
然後跑到最後的setText就不用选字了 就会直接输入进EditText
所以当我一直输入"ㄏㄏㄏ" 他就会完全不能选字的打成"哈哈哈"
请问是我流程写法出问题吗
还是有办法可以关掉htc的中文建议选字
我把EditText的inputTpye="textNoSuggestions|textVisiblePassword"
英文的建议选字是关掉了
但中文不行QQ
好像叙述的不是很清楚...但我尽力了
如果有哪里不清楚的我再补充
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.240.206.184
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1467039219.A.0BB.html
※ 编辑: ptthao (123.240.206.184), 06/27/2016 22:54:21
1F:→ mshockwave: 我觉得是键盘问题 06/28 09:52
2F:→ bassgod: 会不会是因为全形字 06/28 17:00
3F:→ ptthao: 我用Spannable取代SpannableString就解决这个问题了~~ 06/28 17:06
4F:→ ptthao: 这样可以避免每次文字更动都要再setText 06/28 17:07