如何在软键盘中显示空格键,并在用户单击空格键时执行一些操作



我有一个edittext。在该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
}
}

在EditText 中拦截空格键的问题

如果你有多个编辑文本,在上面的代码中放入

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

我想我知道为什么你的编辑文本不起作用了。当编辑文本被聚焦(选中)时,按键点击会绕过您的活动,直接进入编辑文本。要解决此问题,您需要将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;
}
});

最新更新