日期:2014-05-19  浏览次数:20681 次

只有十分了!一个刁钻的问题!~
如何判断按键结束,,,,,,,,,,,,,,
KeyUp判断得太准确了,我要的是一个单词输入完毕,,,,,,

yesterday
111111111over
1表述KeyUp,我要判断over


换个思路解决问题也可以,那就得控制子线程提前返回,只保留最后一个线程,


我在做一个单词查询工具,每次按键都会查询,并将结果显示,
如果查询为空时将从网络获取,因为延时,所以我输入完毕后,会产生多个线程,
再最后一个子线程没有返回前,其它的线程都会改变UI,是不同步的,
如:我输入hello
第一个线程返回时将输出:字线h
第二个线程返回时将输出:he,他
每三个线程返回时将输出:hell,地狱
第四个线程返回时将输出:hello,打招呼,
用户很快的输入完成,但是子线程延时后输出,输出字母h,人家还以为hello的中文解释就是字母h呢,一会儿又变成he,他了,再变,再变,变好几次才能返回正确的答案,这个问题,,,,,,,,,,,,,,,


我的思路是,1,判断单词输入完毕,查询之
2,每次KeyUp结束之前的线程,只保留最后一个线程,


第一种方法肯定省资源,但是将无法动态显示结果,即输入即显示#17
每二种方法浪费资源,但是,具体操作好像比较麻烦,共产生了多少子线程?如何判断那个是最后一个线程?如果此时用户又按键了呢?
针对第二种方法,补充说明,如果可以在用户两次按键的间隔时间内查询到结果则显示之,否则结束,




------解决方案--------------------
你怎么知道一个单词输入完毕了呢?

觉得你可以通过空格,回车,分号,豆号等标识一个单词输入完毕,这样就可以在按键事件里来判断了.
------解决方案--------------------
判定0.5秒之内没有输入就为之一个单词吧