这段时间在做个KJAVA的软件,用的是低级界面做出来的。开始还没什么问题,但是一到输入的功能时,就出现了问题。低级界面上调不出来输入法,可高级界面返回到低级界面时,低级界面就会退出全屏模式,让系统功能菜单挡去了一大块!!
现在解决办法有两个:
1 自己开发一个输入法。
一开始想难度也不大,就是用keyPressed事件捕到按键代码,再转为相应的字母和数字。可是当用户的手机没有键盘时怎么办?? 我们老大说,那就开发一个有界面软键盘有同时能响应键盘事件的组件! 回头我一想,这样的话问题是解决了,但是开发周期又要长出一些,而且难度也增加了。 万不得以是可以走这条路。
2 找一个办法来解决这个问题。
使得从高级返回到低级界面时 保持低级界面的全屏状态。找了很长时间,没有结果。不过我没有放弃。 一个测试时的细节让我有了灵感。 在我从TextBox到Canvas时,全屏状态没了,当我再从这个Canvas切到另一个Canvas时,奇迹出现了,全屏状态又出现了!!又仔细想了一下这个过程,这个Canvas切到以前建立过的Canvas不会出现全屏,当其创建了一个新的Canvas 并设置了setFullScreenMode(true);这样,全屏的Canvas就出现了,再切回来也还是全屏!
于是,我写了这么一段代码
public void CreateCanvas(){
Canvas can = new Canvas() {
protected void paint(Graphics arg0) {
}
};
can.setFullScreenMode(true);
//display.setCurrent(can);
display.setCurrent(this);
can = null;
}
在TextBox输入结束后再这样调用
parent.setTextValue( inputBox.getString());
parent.CreateCanvas();
这样就OK了!
终于解决问题了。但这样的方式会有一个麻烦,就是开销很大。创建一个Canvas后又销毁……