2017-08-10 107 views
0

我已經創建了Android鍵盤,並且我正在創建箭頭來移動用戶輸入中的光標,我可以左右移動,但我無法知道如何編寫代碼的上下..這裏是代碼如何在自定義Android鍵盤中定義向上和向下箭頭

switch (arrow){ 
    case KEY_LEFT: 
     CharSequence leftText = getCurrentInputConnection().getTextBeforeCursor(1000, 0); 
     int leftLen = leftText.length() ; 
     getCurrentInputConnection().setSelection(leftLen-1, leftLen-1); 
     break; 
    case KEY_RIGHT: 
     CharSequence rightText = getCurrentInputConnection().getTextBeforeCursor(1000, 0); 
     int rightLen = rightText.length() ; 
     getCurrentInputConnection().setSelection(rightLen+1, rightLen+1); 
     break; 
    case KEY_UP: case KEY_DOWN: 
    break; 
    } 

任何一個可以幫助我實現了down和up?

回答

0

首先,我建議做這樣的事情來檢查按鍵

myEditText.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, 
          int keyCode, 
          KeyEvent event) { 
      if (event.getAction() == KeyEvent.ACTION_DOWN) { 
       switch (keyCode) { 
        case KeyEvent.KEYCODE_DPAD_LEFT: 
         moveCursorLeft(); 
         return true; 
        case KeyEvent.KEYCODE_DPAD_RIGHT: 
         moveCursorRight(); 
         return true; 
        case KeyEvent.KEYCODE_DPAD_UP: 
         moveCursorUp(); 
         return true; 
        case KeyEvent.KEYCODE_DPAD_DOWN: 
         moveCursorDown(); 
         return true; 
       } 
      } 
      return false; 
     } 
    }); 

我會關閉你正在編寫某種形式的文本編輯器的假設。

向上和向下的實現取決於你想要那些按鈕做什麼,以及你到目前爲止如何實現的。例如,您可以將每條線路作爲自己的EditText,並將其跟蹤在ArrayList中。然後,每次添加新行時,可以將新的EditText添加到ArrayList。當用戶向上或向下按下時,只需按照正確的方向將ArrayList的索引更改爲1即可。

我想這樣做會是一種非常低效的方式,但是很容易定義向上和向下做什麼。如果沒有看到更多的代碼,就很難多說你應該做什麼。

+0

不,我創建只是一個軟的自定義鍵盤沒有創建一個EditText ..這就是爲什麼我不能實現向下和向上遊標..有沒有任何幫助的想法,這可以做到這一點? –

相關問題