3

我有一个编辑文本。在那个edittext中,用户输入了一些文本。当用户点击空格键时,我需要执行一些操作。我该怎么做。

提前致谢。

4

3 回答 3

3

要在用户按下空格键时执行某些操作,请使用以下命令 -

if((event.getAction()==KeyEvent.ACTION_DOWN)&&(key == KeyEvent.KEYCODE_SPACE)){
//put your code for whatever you what to do when the user presses space here
   }
}

在 EditText 中截取空格键的问题

如果你有多个edittexts,在上面的代码中

if (edittext.hasFocus()){
    //do something for particular edit text
}

我想我知道为什么您的 edittext 不起作用。当edittext被聚焦(选中)时,按键会绕过您的活动并直接进入edittext。要解决此问题,您需要将其onKeyListener移入onKeyListener您的编辑文本中。

请尝试以下代码

edittext.setOnKeyListener(new OnKeyListener() {           
        @Override
        public boolean onKey(View v, int key, KeyEvent event) {
            if (event.getAction()==KeyEvent.ACTION_DOWN && key == KeyEvent.KEYCODE_ENTER) {
                //operation that you want on key press
                return true;
            }
            return false;
        }
    });

希望这个有帮助

于 2012-11-15T07:49:15.787 回答
1

我认为它更好地TextWatcher用于 EditText。你可以用这种方式实现

 EditText et = (EditText)findViewById(R.id.ed1);

    et.addTextChangedListener(new TextWatcher()
    {
        public void afterTextChanged(Editable s)
        {
              // Abstract Method of TextWatcher Interface.
        }
        public void beforeTextChanged(CharSequence s,
                int start, int count, int after)
        {
            // Abstract Method of TextWatcher Interface.
        }
        public void onTextChanged(CharSequence s,
                int start, int before, int count)
        {
            System.out.println(s);
            if(s.toString().equals(" "))
            {
                Toast.makeText(getApplicationContext(), "Space is clicked", Toast.LENGTH_LONG).show();
            }
        }
    });
于 2012-11-15T08:08:32.670 回答
1

当用户单击空格按钮定义您自己的操作时,试试这对您肯定有用...

youredittext.setOnKeyListener(new View.OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {

                // If the event is a key-down event on the "enter" button
                if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_SPACE)) {
                  // Perform action on key press

                  Toast.makeText(getApplicationContext(), youredittext.getText(), Toast.LENGTH_SHORT).show();
                  return true;
                }
                return false;
            }
        });
于 2013-06-20T12:33:49.753 回答