2010-07-17 3 views
7

Ich möchte das Verhalten der ENTER Taste der virtuellen Tastatur, so dass außer Kraft zu setzen:Wie das <ENTER> Schlüssel Verhalten der virtuellen Tastatur in Android außer Kraft zu setzen

  • , wenn es mehr Felder auf dem Bildschirm, es ‚Tabs‘ zum nächsten Feld
  • , wenn es das letzte Feld des Bildschirms ist, führt es die Standardaktion des Bildschirms

ich habe mit den IME Optionen und Etiketten zu spielen, aber nur don komm nicht was ich möchte. Hat jemand Vorschläge?

Antwort

9

Mit Hilfe auf einem anderen Forum habe ich den Weg gefunden, es zu tun.

Um es wiederverwendbar zu machen, ich habe meine eigene Super-Dialog-Klasse erstellt, die 2 OnKeyListener Objekte enthält und eine abstrakte einreichen Methode:

public abstract class MyAbstractDialog extends Dialog { 

/** 
* OnKeyListener that puts the focus down when the ENTER key is pressed 
*/ 
protected View.OnKeyListener onEnterFocusDown = new View.OnKeyListener() { 

       @Override 
       public boolean onKey(View v, int keyCode, KeyEvent event) { 
       if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
          (keyCode == KeyEvent.KEYCODE_ENTER)) { 
           v.requestFocus(View.FOCUS_DOWN); 
         return true; 
       } 
         return false; 
       } 
     }; 

/** 
* OnKeyListener that submits the page when the ENTER key is pressed 
*/ 
protected View.OnKeyListener onEnterSubmitView = new View.OnKeyListener() { 

       @Override 
       public boolean onKey(View v, int keyCode, KeyEvent event) { 
       if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
          (keyCode == KeyEvent.KEYCODE_ENTER)) { 
           submitView(v); 
         return true; 
       } 
         return false; 
       } 
     }; 
     protected abstract void submitView(View v); 

} 

Jetzt im Dialog ich diese Objekte auf meine Felder festlegen können:

// make the ENTER key on passwordField1 put the focus on the next field 
passwordField1.setOnKeyListener(onEnterFocusDown); 

// make the ENTER key on passwordField2 submit the page 
passwordField2.setOnKeyListener(onEnterSubmitView); 
+0

Entschuldigung für das beschissene Layout, weiß nicht, warum es nicht so, wie ich wollte – Aak

Verwandte Themen