Send backspace key event to edit text

2019-01-22 14:25发布

问题:

I don't know how to send a backspace key event to a EditText from my own button. Here is what i tried:

Button backSpace=(Button)findViewById(R.id.backSpace_tab);
backSpace.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        text.dispatchKeyEvent(new  KeyEvent(KeyEvent.KEYCODE_DEL,KeyEvent.KEYCODE_P));
    }
});

回答1:

From the Android developer docs:

public KeyEvent (int action, int code)

Create a new key event.

Parameters
action Action code: either ACTION_DOWN, ACTION_UP, or ACTION_MULTIPLE.
code The key code

The first parameter should be an action code. In your case you should use ACTION_DOWN, because you want to simulate a keypress:

public static final int ACTION_DOWN

getAction() value: the key has been pressed down.

So this should work:

@Override
public void onClick(View v)
{
    text.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL));
}