首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IME和捕捉(触摸)事件

IME和捕捉(触摸)事件
EN

Stack Overflow用户
提问于 2013-05-20 16:43:59
回答 1查看 301关注 0票数 0

我目前正努力拿到心理学文凭,我想写一些关于智能手机键盘的不同类型的文章。为了研究这个领域,我需要一个测量时间的工具。当我刚开始使用Android程序时,我的朋友在帮我,但是我们被困住了。这是我们需要的,也是我们尝试过的。我真的很感谢你的帮助

我们需要一种在IME中的用户输入开始之前和用户输入结束后调用函数的方法。(我们只需要计时,而不需要实际的输入。)我们还需要在用户输入之前调用一个函数,以选择自动校正的启动/结束。

我们需要为所有类型的IMEs (特别是键盘,如Swype、Swiftkey等)这样做(尽管其中一个已经足够了)

我们试过了:

通过TextWatcher addTextChangedListener获得afterTextChanged/afterTextChanged之前的时间似乎是不可靠的,即使在一个手势中或在一个手势中多次调用

子类化EditText实现OnTouchListener,使用onTouch() --在使用swype时似乎根本没有被调用,所以要么我们做错了,要么ime/swpye消耗了这些事件,也使用了onKeyPreIme,也没有调用

理想的做法是:是一种在“手势结束后”通过System.currentTimeMillis()记录当前时间的“触摸”事件的一种方式,即当手指从显示中释放出来时。

我们不需要实际的代码,一个指向正确的命令/文档/小部件的链接将是贴切的。

如果你在柏林需要一个地方.拿饼干:)

EN

回答 1

Stack Overflow用户

发布于 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框架本身,所以你不能像现在这样把它作为一个单独的模块来构建。

希望这有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16654227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档