2011-08-22 10 views
14

Non so come inviare un evento tasto backspace a un EditText dal mio pulsante. Ecco quello che ho provato:Invia evento tasto backspace per modificare il testo

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)); 
    } 
}); 

risposta

36

Dal Android developer docs:

pubblico KeyEvent (int azione, int codice)

Creare un nuovo evento chiave.

Parametri
azione codice di azione: o ACTION_DOWN, ACTION_UP o ACTION_MULTIPLE.
codice Il codice chiave

Il primo parametro dovrebbe essere un codice di azione. Nel tuo caso si dovrebbe usare ACTION_DOWN, perché si vuole simulare una pressione del tasto:

public static final int ACTION_DOWN

getAction() Valore: il tasto è stato premuto.

Quindi questo dovrebbe funzionare:

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