我正在尝试为用户提供一种从 EditText 将文本输入到 TextView 的方法。但是,如果用户输入某些内容并想要修复它,我希望他们能够在空的 EditText 上按空格以获取他们写回的最后内容。第一个问题是,如果他们输入“hello”,按 Enter 键将其添加到 TextView(这会将其从 EditText 中清除),然后按空格键,EditText 就会显示“hello”。这不是我想要的,我也不明白为什么。
我的代码将输入的文本放入保持字符串中:
b1 = ti.getText().toString();
然后,如果用户按下空格键,我相信他们应该在 EditText 中得到 b1 。相反,我得到:" " + b1
。为什么里面要增加这个空间?
if((event.getAction()==KeyEvent.ACTION_DOWN)&&(key == KeyEvent.KEYCODE_SPACE)){
if(ti.getText().toString().equals("")){
ti.setText(b1);
}
我的第二个更大的问题是上面的代码只能在硬件键盘上运行。软件键盘按下空格的按键事件是什么?
这一切都在 onKeyListener 中。
解决额外空间问题的一个简单方法是在将字符串放入 EditText 之前删除字符串中的空格
b1 = b1.substring(1); //<--- cut out the first character, which is the " " in your case.
ti.setText(b1);
附注我强烈推荐更具描述性的变量名称。如果您使用 ti 和 b1 这样的名称,您的程序可能会难以运行。也许这些选择在您的程序上下文中更有意义。但从您在这里显示的内容来看,很难判断这些名称指的是什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)