2011-09-27 4 views
1

나는 선형 뷰 의 일부 혼합을 배치하고 디자인에 probs가 없다는 것을 제외하고는 Scrollview를 부모 뷰로 사용하지만 테스트 중에는 응용 프로그램, 커서의 움직임에 문제가 있다는 것을 알았습니다. 의도적으로 한 편집 텍스트에서 다른 텍스트로 포커스를 이동하는 것이지만 (수평으로), 아래쪽에있는 입력 버튼을 클릭하면 포커스가 이동합니다 세로로 배치 된 다음 편집 텍스트 (나는 knoe, 이것이 기본 텍스트입니다).한 EditText에서 다른 (가로 방향)으로 포커스 이동 - 안드로이드

심지어 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; 
     } 
    }); 

한 텍스트 상자에서 다른 텍스트 상자로 포커스를 이동하는 방법을 알려주십시오. 위 코드는 포커스를 수직으로 위치한 텍스트 상자로 이동합니다. 나는 Google 검색을 많이했지만 결과는 없었습니다.

더 나은 명료성을 위해이 화면을 공유했습니다.

희망은 여기에 더 좋은 응답을 얻을 수 있습니다.

더 나은 솔루션이 될 수 있습니다 .. 당신에게 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; 
      } 

     } 
} 
관련 문제