2010-12-14 11 views
2

Ich versuche eine Methode zu implementieren, um zu wissen, wann es eine Taste und eine Freigabe einer Taste auf einer Soft-Tastatur gibt. Ich habe den onKeyListener verwendet, um den unteren und oberen Teil des Schlüssels zu bekommen, aber das Problem dabei ist, dass es nur auf einer harten Tastatur funktioniert. Ich habe den OnKeyBoardActionListener gefunden, der diese Funktionalität zu haben scheint. Das Problem, auf das ich hiermit stoße, ist, dass ich das KeyboardView von einem Edittext bekommen muss, den ich für einfache Tests verwende.OnKeyboardActionListener android keys

public class testing extends Activity implements KeyboardView.OnKeyboardActionListener{ 
    EditText testingBox; 
    TextView textbox; 
    KeyboardView keyView; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    textbox = (TextView)findViewById(R.id.TextView01); 


    testingBox = (EditText)findViewById(R.id.EditText01); 

    //keyView is null i need to get it somehow. 

    keyView.setOnKeyboardActionListener(this); 
} 
//methods for the OnKeyBoardActionListener 
} 

wenn jemand könnte einen Rat geben, wie ich diese keyBoardView bekommen kann oder eine andere Art, wie ich diese Soft-Tastatur drückt erfassen und Releases wäre toll. Vielen Dank.

Antwort

1

Ich glaube, die einzige Möglichkeit, die genaue Presse und Releases eines Softkeyboard zu erfassen, ist aus dem IME. Sie können den Text über eine TextWatcher ändern sehen.

Ich denke, dies liegt teilweise daran, dass ein IME möglicherweise keine Tasten runter und up Mechanismen haben. Ein IME muss nicht unbedingt wie eine Standard-QWERTZ-Tastatur aussehen. Es könnte etwas wie Swype sein, wo Sie ein Muster zeichnen und Wörter herauskommen.