我目前正努力拿到心理学文凭,我想写一些关于智能手机键盘的不同类型的文章。为了研究这个领域,我需要一个测量时间的工具。当我刚开始使用Android程序时,我的朋友在帮我,但是我们被困住了。这是我们需要的,也是我们尝试过的。我真的很感谢你的帮助
我们需要一种在IME中的用户输入开始之前和用户输入结束后调用函数的方法。(我们只需要计时,而不需要实际的输入。)我们还需要在用户输入之前调用一个函数,以选择自动校正的启动/结束。
我们需要为所有类型的IMEs (特别是键盘,如Swype、Swiftkey等)这样做(尽管其中一个已经足够了)
我们试过了:
通过TextWatcher addTextChangedListener获得afterTextChanged/afterTextChanged之前的时间似乎是不可靠的,即使在一个手势中或在一个手势中多次调用
子类化EditText实现OnTouchListener,使用onTouch() --在使用swype时似乎根本没有被调用,所以要么我们做错了,要么ime/swpye消耗了这些事件,也使用了onKeyPreIme,也没有调用
理想的做法是:是一种在“手势结束后”通过System.currentTimeMillis()记录当前时间的“触摸”事件的一种方式,即当手指从显示中释放出来时。
我们不需要实际的代码,一个指向正确的命令/文档/小部件的链接将是贴切的。
如果你在柏林需要一个地方.拿饼干:)
发布于 2013-05-20 20:53:15
不确定这是不是一个很好的答案,但是.
您的计划是在Android应用程序中编写这个程序吗?您可以在任何人的设备上分发和运行这个应用程序吗?
听起来,无论您在EditText或应用程序上做什么,都是不够的,因为IME在Android中是一个单独的模块,因此您将无法获得任何有关自动更正或预测之类的信息(不同的IME具有不同的功能)。您只能从文本条目中获取输入(或删除)的文本。
我能想到的最好的方法就是让你开发你自己的IME,然后你可以在里面记录你喜欢的任何东西。
为此,我建议您首先查看Android:http://developer.android.com/guide/topics/text/creating-input-method.html的这篇文章。
然后您可以查看缺省拉丁文IME的源代码:r1/com/android/inputmethod/latin/LatinIME.java。
虽然这一项可能远远超出了你的需要,并且(我认为)有一些链接到Android框架本身,所以你不能像现在这样把它作为一个单独的模块来构建。
希望这有帮助
https://stackoverflow.com/questions/16654227
复制相似问题