2011-09-27 77 views
1

我有一個滾動視圖作爲父視圖,在那裏我已經放置了一些線性佈局的混合物 並且在設計中沒有probs,但是在測試應用程序,我發現光標移動存在問題,我的目的是將焦點從一個編輯文本移動到另一個位於adjecent(Horizo​​ntally)的位置,但是當我點擊底部的輸入按鈕時,它將移動焦點到下一個垂直位置的編輯文本(我是knoe,這是默認的)。將焦點從一個EditText移動到另一個(水平方向) - Android

即使我試圖執行EditorAction,仍存在相同的問題。

這是我用來將焦點從一個編輯文本移動到另一個的代碼。

// Adding the special listener, to be invoked when the action is performed on the editor 
    firstEditText.setOnEditorActionListener(new OnEditorActionListener() { 

    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      // TODO Auto-generated method stub 
      if(actionId == EditorInfo.IME_ACTION_UNSPECIFIED || actionId == EditorInfo.IME_ACTION_NEXT) { 
      // Move the focus to the next edittext(secondEditText) 
        secondEditText.requestFocus(); 

      } 
      return false; 
     } 
    }); 

請讓我知道,如何將焦點從一個文本框移動到另一個文本框放置在水平方向。上面的代碼將焦點移動到垂直位置的文本框。我試着搜索谷歌很多,但沒有結果。

我也分享了該屏幕以獲得更好的清晰度。

希望我能在這裏得到更好的答覆。

謝謝

enter image description here

回答

3
public abstract void onFocusChange (View v, boolean hasFocus){ 
if(!hasFocus){ 
secondEditText.requestFocus(); 
} 

} 

但是當向上滾動堂妹,即使在這種情況下,第二EditText上獲得焦點,而不是上述觀點失敗..

一個更好的解決方案可能是,

GestureDetector.OnGestureListener lis = new GestureDetector.OnGestureListener(){ 

      @Override 
      public boolean onDown(MotionEvent arg0) { 
       if(firstEditText.hasFocus){ 
            secondEditText.requestFocus(); 
             return true; 
            } 
       return false; 
      } 

      @Override 
      public boolean onFling(MotionEvent e1, MotionEvent e2, 
        float velocityX, float velocityY) { 
       // TODO Auto-generated method stub 
       return false; 
      } 

      @Override 
      public void onLongPress(MotionEvent e) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public boolean onScroll(MotionEvent e1, MotionEvent e2, 
        float distanceX, float distanceY) { 
       // TODO Auto-generated method stub 
       return false; 
      } 

      @Override 
      public void onShowPress(MotionEvent e) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public boolean onSingleTapUp(MotionEvent e) { 
       // TODO Auto-generated method stub 
       return false; 
      } 

     } 
} 
相關問題