问题描述
我正在通过Processing for Android开发一个Android应用程序,但遇到了有关实现简单文本输入字段的问题。
基本上,当我按下Android设备上的某个键(当前使用的是Samsung键盘)时,直到我按下空格键时,才需要为上一个键调用keypressed()
函数,并且该函数被称为传递最后一个非空格字符作为key
值。因此,当我键入多个字符时(就像我在键入一个单词一样),直到我按下空格键并且key
值返回为空的空格字符时,该函数才被调用。我在想键盘会以某种方式将先前的字符存储在变量中,以便它可以执行自动更正/自动完成的工作,并且仅在按下空格键或Enter键时才将值发送到应用程序。但是,处理不支持一次发送多个密钥,因此会将其解释为空格字符。
以下是重现此问题的代码:
boolean keyboard = false;
StringBuilder sb;
void setup() {
sb = new StringBuilder(10);
fullScreen();
textFont(createFont("Arial",40 * displayDensity));
fill(0);
}
void draw() {
background(255);
text(sb.toString(),width/2,height/2);
}
void keyreleased() {
background(200,50,30);
println(keyCode,key);
if(keyCode == DELETE){
sb.setLength(Math.max(sb.length() - 1,0));
} else {
sb.append(key);
}
}
void mousepressed() {
if (!keyboard) {
openKeyboard();
keyboard = true;
} else {
closeKeyboard();
keyboard = false;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)