2011-12-15 3 views
0

textfieldを編集しているときにvirtual keyboardと表示したいとします。私はこのアプローチを取る:LWUIT 1.4 - テキストフィールドの編集中に初めて表示された後に仮想キーボードが表示されないのはなぜですか?

public class ChpModif extends TextField { 

    public ChpModif(int maxChars, FocusListener focusListener, DataChangedListener dataChangeListener, VirtualKeyboard vkb) 
    { 
     super(); 
     setReplaceMenu(false); 
     if (maxChars != -1) 
      setMaxSize(maxChars); 
     addFocusListener(focusListener); 
     addDataChangeListener(dataChangeListener); 
     if (vkb != null) 
      VirtualKeyboard.bindVirtualKeyboard(this, vkb); 
    } 
    protected Command installCommands(Command clear, Command t9) 
    { 
     return null; 
    } 
} 

public class ModifierFicheClient extends Ecran implements ActionListener, DataChangedListener, FocusListener 
{ 
    private VirtualKeyboard vkNombre = new VirtualKeyboard(); 
    private String textFieldStatus, listBoxStatus; 
    private ListBox genretxt; 
    private boolean modifFromUpdate; 
    private ChpModif nomtxt,prenomtxt,cintxt,adressetxt/*,genretxt*/,lieutxt,professiontxt,courieltxt,teltxt,datenaisstxt; 
    private Component cursorItem; 
    ... 
    public ModifierFicheClient(SmartPhoneBanking controller,String prosp_id,int recordStoreID,Form prevForm) 
    { 
     super(""); 
     vkNombre.setInputModeOrder(new String[]{VirtualKeyboard.NUMBERS_SYMBOLS_MODE}); 
     ... 
     modifFromUpdate = false; 
     cintxt = new ChpModif(12, this, this, vkNombre); 
     ... 
    } 
    public void dataChanged(int type, int index) { 
     textFieldStatus = "CHANGED"; 
     if (!modifFromUpdate) 
     { 
      try 
      { 
       if (type == DataChangedListener.ADDED || type == DataChangedListener.CHANGED || type == DataChangedListener.REMOVED) 
       { 
        if (Display.getInstance().isVirtualKeyboardShowingSupported()) 
        { 
         if (!Display.getInstance().isVirtualKeyboardShowing()) 
          cursorItem.pointerReleased(cursorItem.getAbsoluteX(), cursorItem.getAbsoluteY()); 
        } 
       } 
      } 
      catch (ClassCastException cce) 
      {} 
     } 
    } 
    public void focusGained(Component chp) { 
     cursorItem = chp; 
    } 
    public void focusLost(Component arg0) { 
    } 
    protected void onShowCompleted() 
    { 
     ... 
     update(); 
    } 
    public void update() 
    { 
     modifFromUpdate = true; 
     cintxt.setText(fichesignalitique.elementAt(0).toString()); 
     ... 
     modifFromUpdate = false; 
    } 
    ... 
} 

問題は、私はtextfieldを編集初めてで、その後virtualkeyboardが示されていることです。 virtualkeyboardOkボタンをクリックしてから、もう一度textfieldを編集します。しかし、今回はvirtualkeyboardは表示されません!

を編集するたびにvirtualkeyboardが表示されるようにするにはどうすればよいですか?

答えて

1

これは、私が今すぐ見ることができないので、1.5で修正された1.4バグです。 VKBは1.4で全く新しいものでした。

関連する問題