首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将KeyEvent对象列表转换为字符串

将KeyEvent对象列表转换为字符串
EN

Stack Overflow用户
提问于 2013-10-27 04:02:52
回答 3查看 1.8K关注 0票数 2

我正在开发一个应用程序,它需要能够使用外部USB或蓝牙键盘楔形。然后捕获KeyEvents并根据需要缓存它们(启动/结束哨兵)。

因此,此时我有需要转换为字符串的KeyEvents列表。

因此,我需要将这些有序的KeyEvents转换为正确的字符串。

代码语言:javascript
复制
List<KeyEvent> events = new ArrayList<KeyEvent>();
String eventString = eventsToString(events); //??????

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-29 20:06:24

经过大量的研究,这是我想出来的。我使用了一个接受关键事件的KeyListener。然后,它根据关键事件(考虑转移等)追加到Editable。下面的代码将在关键事件出现时简单地响应不断增长的字符串。

代码语言:javascript
复制
KeyListener tkl = new TextKeyListener(Capitalize.NONE, false);
Editable et = Editable.Factory.getInstance().newEditable("");

View.OnKeyListener key = new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN)
            tkl.onKeyDown(null, et, keyCode, event);
        else if (event.getAction() == KeyEvent.ACTION_UP)
            tkl.onKeyUp(null, et, keyCode, event);
        else
            tkl.onKeyOther(null, et, event); //NOTE: My devices never used KeyEvent.ACTION_MULTIPLE so I don't know if it should get fired here or with the key down event.

        Log.i(("Test: " + et.toString());
    }
};

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (key.onKey(null, event.getKeyCode(), event))
        return true;
    else
        return super.dispatchKeyEvent(event);
}
票数 5
EN

Stack Overflow用户

发布于 2013-10-27 04:13:59

对每个事件使用getDisplayLabel()如何?类似于:

代码语言:javascript
复制
List<KeyEvent> events = new ArrayList<KeyEvent>();
StringBuilder strEvents = new StringBuilder();
for (KeyEvent k : events) {
    strEvents.append(k.getDisplayLabel())
    strEvents.append(",");
}

String eventString = etrEvents.toString();
票数 1
EN

Stack Overflow用户

发布于 2013-10-28 16:52:55

仅使用getUnicodeChar()?http://developer.android.com/reference/android/view/KeyEvent.html#getUnicodeChar()在vaimvolk循环上构建

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

https://stackoverflow.com/questions/19614500

复制
相关文章

相似问题

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