今天手贱更新了一下openfl,fd里面又各种报错。最伤心的是,之前修改MainView.java输入中文的方法现在居然失效了。还好这段时间研究c2dx,总算是能读能懂修改的那段代码,捣鼓了一下午,算是解决了。

openfl以前版本android输中文的解决方案原贴地址:

http://blog.csdn.net/rocks_lee/article/details/8274194

新版lime1.5.7 +openfl2.0.1。不知道是lime还是openfl,升级之后直接去掉了nme的调用。所以改原先nmu下的MainView.java也没用了。在lime下也有MainView.java文件,我试图加override发现GLSurfaceView下面跟本没有onKeyMultiple方法给我覆盖。而且onKeyChange由原先的两参数变成了三个参数。完全没用。

于是我在lime目录下找到了GameActivity.java类,activity是有onKeyMultiple方法的。于原贴代码改成如下,粘到GameActivity.java里面即可。

// Pelephone
@Override public boolean onKeyMultiple(final int inKeyCode, int repeatCount, final KeyEvent event) {
String s = event.getCharacters();
if (s == null || s.length() == 0) return super.onKeyMultiple(inKeyCode, repeatCount, event);
final char[] cc = s.toCharArray();
int cnt = 0;
for (int i = cc.length; --i >= 0; cnt += cc[i] != 0 ? 1 : 0);
if (cnt == 0) return super.onKeyMultiple(inKeyCode, repeatCount, event);
final MainView me = mView;
me.queueEvent(new Runnable() {
//This method will be called on the rendering thread:
public void run() {
for (int i = 0, n = cc.length; i < n; i++) {
int keyCode;
if ((keyCode = cc[i]) != 0) {
int charCode = me.translateKeyCode (keyCode, event);
//Simulate key down and up...
me.HandleResult(Lime.onKeyChange(keyCode,charCode, true));
me.HandleResult(Lime.onKeyChange(keyCode,charCode, false));
}
}
}
});
return true;
}
//end pelephone

直接改文件夹下的GameActivity.java,下次更新后还是会被覆盖。而且这样搞也影响lime代码的完成性。可以用改模板的方法,把模板切到自己项目的目录下。

例如我在项目下建一个tmp文件夹,将修改好的GameActivity.java放入tmp文件夹。再然后修改项目配置xml加入下面一行标签

<template path="tmp/GameActivity.java" rename="src/org/haxe/lime/GameActivity.java" if="android" />

编译一下,又可以打中文了。

另外还有一个用jni解决中文问题的方法,我找到的帖子如下

http://blog.sina.com.cn/s/blog_47030a4c0101dnml.html

jni的思路不错,学到许多好东西,我也是在找接入开放平台sdk时找到的方法。

openfl更新2.0后,android输入法又不能输中文了的更多相关文章

  1. gulp更新4.0后的报错(gulp报Did you forget to signal async completion?)

    本文首发于青云工作室 原文链接为 https://qystudio.ltd/posts/55153.html 缘起 今天我升级了gulp到4.0,在git三件套之后,网站并没有更新,我便登录了gith ...

  2. android studio从1.5更新到2.0后terminal无法运行gradle命令,提示无法找到gradle命令

    android studio从1.5更新到2.0后terminal无法运行gradle命令,提示无法找到gradle命令. 'gradle' 不是内部或外部命令,也不是可运行的程序 或批处理文件. 设 ...

  3. 关于Android Studio升级到2.0后和Gradle插件不兼容的问题

    今天升级AS到2.0后,用AS在真机上调试,发现报了如下错误: This version of Android Studio is incompatible with the Gradle Plugi ...

  4. android使用百度地图最新sdk5.0后后代码混淆时,地图无法显示闪退问题

    描述:刚开始遇到这个问题我一步一步去排除,最后发现在初始化地图的时候,代码混淆就有问题了, 问题描述:当跳显示地图的页面APP闪退, 解决对比: 1:对于老版本百度sdk:代码混淆时语句: -libr ...

  5. 解决IDEA2018.1.5或者Android Studio 3.0版本的输入法不跟随光标问题

    问题1:IDEA2018.1.5版本的输入法不跟随光标 解决办法1:修改JDK版本,步骤如下: 1. 使用快捷键ctrl+shift+A,在输入框中输入Switch Boot JDK,如图所示 2.替 ...

  6. Android Studio 升级到3.0后出现编译错误\.gradle\caches\transforms-1\files-1.1\*****-release.aar

    Android Studio 升级到3.0后出现各种编译问题,其中有一个问题是关于资源找不到的问题,百度了半天,也没有相关的文章 C:\Users.gradle\caches\transforms-1 ...

  7. Android输入法扩展之外接键盘中文输入

    大家想不想要这样一台Android  Surface平板,看着就过瘾吧. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSVRsZWFrcw==/font/ ...

  8. Android输入法框架系统(上)

    输入法,就是用来输入字符(包括英文,俄文,中文)的工具.输入法你可以看成是一种字符发生器,它将输入数据触摸事件或者按键事件转化为其他更丰富的字符.在PC时代,输入法的原始输入来自实体键盘,鼠标,然后输 ...

  9. 写一个Android输入法02——候选窗、转换

    上一篇介绍了完成Android输入法的最小化步骤,它只能将按键对应的字符上屏.一般的东亚语言都有一个转换的过程,比如汉语输入拼音,需要由拼音转成汉字再上屏.本文将在前文基础上加入完成转换过程所必需的候 ...

随机推荐

  1. Linux权限管理 chattr命令、lsattr命令、sudo命令

    chattr命令 chattr命令用来修改文件系统的权限属性 chatrr 只有 root 用户可以使用,用来修改文件系统的权限属性,建立凌驾于 rwx 基础权限之上的授权. chatrr 命令格式如 ...

  2. TIJ读书笔记01-操作符

      TIJ读书笔记01-操作符 概述 关系操作符和逻辑操作符 位操作符 类型转换 概述 操作符 操作符接受一个或多个参数,并生成一个新值. 换句话说操作符作用于操作数,生成一个新值.有些操作符会改变操 ...

  3. STM32f103的电阻触摸屏的五点校正算法

    源:STM32f103的电阻触摸屏的五点校正算法 STM32f103的触摸屏的设置与使用

  4. Delphi中ComPort通信中的数据处理

    源: Delphi中ComPort通信中的数据处理

  5. Ajax跨域请求action方法,无法传递及接收cookie信息(应用于系统登录认证及退出)解决方案

    最近的项目中涉及到了应用ajax请求后台系统登录,身份认证失败,经过不断的调试终于找到解决方案. 应用场景: 项目测试环境:前端应用HTML,js,jQuery ajax请求,部署在Apache服务器 ...

  6. CentOS 安装 Zabbix

    一.安装 centos7 网易下载 http://mirrors.163.com/centos/7.2.1511/isos/x86_64/CentOS-7-x86_64-DVD-1511.torren ...

  7. 最短路径Dijkstra模板

    算法思想:把所有的边分成两个集合A,B.集合A表示已经求出最短路径的点,不断扩展集合A,减少集合B.每一扩展就从结合B中找出到源点距离最短的点,加入到A. dis[i]数组代表从出发点到j的距离: m ...

  8. mapreduce实现学生平均成绩

    思路: 首先从文本读入一行数据,按空格对字符串进行切割,切割后包含学生姓名和某一科的成绩,map输出key->学生姓名    value->某一个成绩 然后在reduce里面对成绩进行遍历 ...

  9. UVA 11181 Probability|Given (离散概率)

    题意:有n个人去商场,其中每个人都有一个打算买东西的概率P[i].问你最后r个人买了东西的情况下每个人买东西的概率 题解:一脸蒙蔽的题,之前的概率与之后的概率不一样??? 看了白书上的题解才知道了,其 ...

  10. Can't connect to MySQL server on 'localhost' (10061)的解决办法!

    Can't connect to MySQL server on 'localhost' (10061)的解决办法! http://blog.sina.com.cn/s/blog_52ebca1f01 ...