【问题标题】:How to identify the white space is pressed from the keyboard如何识别从键盘按下的空白
【发布时间】:2015-04-16 18:07:42
【问题描述】:

我想确定在EditText 框中键入文本时从键盘按下了哪个键。我正在使用此代码,但它不起作用。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if (keyCode == KeyEvent.KEYCODE_SPACE) {

        Toast.makeText(MainActivity.this, "White space is clicked", Toast.LENGTH_LONG).show();
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

我哪里错了?

【问题讨论】:

    标签: android whitespace keypress android-keypad


    【解决方案1】:

    试试这个,可能对你有帮助

    boolean userPressedKey = false ;
    
    yourEditText.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
            userPressedKey = false ;
        }
    
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
    
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            userPressedKey = true;
        }); 
    
    
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (userPressedKey) {
            if (keyCode == KeyEvent.KEYCODE_SPACE) {
        Toast.makeText(MainActivity.this, "White space is clicked", Toast.LENGTH_LONG).show();
                return true;
            }
        }
        super.onKeyDown(keyCode, event);
    }
    

    【讨论】:

    • 我在 EditText 中输入数据,现在我想要的是当用户点击 SpaceBar 然后新单词以“$”等特殊字符开头。也就是说,EditText 中空格后的每个单词的首字母都应该是“$”。
    【解决方案2】:

    你可以试试下面的代码----

    editText1.addTextChangedListener(new TextWatcher() {
    
        @Override
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            // TODO Auto-generated method stub
            String lastChar = s.toString().substring(s.length() - 1);
            if (lastChar.equals(" ")) {
                Toast.makeText(MainActivity.this, "space bar pressed",
                        Toast.LENGTH_SHORT).show();
            }
        }
    
    });
    

    }

    【讨论】:

    • 如果键盘提供建议,按下空格时,它会显示建议。 stackoverflow.com/questions/8595385/…> 看看这个链接。这个问题来了。
    猜你喜欢
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多