android – 在EditText中拦截空格键的问题

我试图让用户为EditText中的TextView输入文本.但是,如果用户输入内容并想要修复它,我希望他们能够在空的EditText上按空格来获取他们写回的最后一件事.第一个问题是,如果他们输入“hello”,按回车键将其添加到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之前从String中删除空格

b1 = b1.substring(1); //<--- cut out the first character, which is the " " in your case.
ti.setText(b1);

附:我强烈建议使用更多描述性变量名称.如果你使用像ti和b1这样的名字,你的程序可能会混淆.也许这些选择在您的计划环境中更有意义.但是从你在这里展示的内容来看,这些名称所指的并不容易.

点赞