我有一个编辑文本。在那个edittext中,用户输入了一些文本。当用户点击空格键时,我需要执行一些操作。我该怎么做。
提前致谢。
要在用户按下空格键时执行某些操作,请使用以下命令 -
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
}
}
如果你有多个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;
}
});
希望这个有帮助
我认为它更好地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();
}
}
});
当用户单击空格按钮定义您自己的操作时,试试这对您肯定有用...
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;
}
});