2012-02-22 2 views
1

지금은 onFocusListener를 사용하여 자동으로 커서를 EditText 문자열의 끝으로 이동시킵니다. 상자가 포커스되는 경우에는 잘 작동하지만 사용자가 문자열의 위치를 ​​탭하면 커서가 이동합니다. Focus (Touch, Click) 이외에 다른 메서드를 구현하려고 시도했을 때 커서가 끝까지 짧게 이동했지만 사용자가 클릭 한 위치로 빠르게 이동합니다. 사용자가 커서 위치를 클릭하지 못하도록 자동으로 setSelection (EditText.getText(). length()) 할 수있는 방법이 있습니까?Android : 사용자가 EditText에서 커서 위치를 선택하지 못하도록 하시겠습니까?

답변

4
/** 
* 
*/ 
package com.sb.skeleton; 

import android.content.Context; 
import android.graphics.Canvas; 
import android.util.AttributeSet; 
import android.util.Log; 
import android.widget.EditText; 

/** 
* @author rajesh 
* 
*/ 
public class SBEditText extends EditText { 

    /** 
    * @param context 
    */ 
    public SBEditText(Context context) { 
     super(context); 
    } 

    /** 
    * @param context 
    * @param attrs 
    */ 
    public SBEditText(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    /** 
    * @param context 
    * @param attrs 
    * @param defStyle 
    */ 
    public SBEditText(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    public void setSelection(int start, int stop) { 
     // TODO Auto-generated method stub 
     Log.d(SkeletonAppActivity.TOSS, "setSelection"); 
     super.setSelection(start, stop); 
    } 


    @Override 
    public void setSelection(int index) { 
     // TODO Auto-generated method stub 
     Log.d(SkeletonAppActivity.TOSS, "selectionChanged"); 
     super.setSelection(index); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     // TODO Auto-generated method stub 

     setSelection(getText().length()); 
     super.onDraw(canvas); 
    } 

} 

이 클래스는 지금까지 변화가 글고 콘텐츠를 발생 때 텍스트의 끝으로 커서를 설정합니다 있는지 확인합니다.

+0

예, 이것이 내가 필요한 것입니다! 고맙습니다. 완벽하게 일했습니다. – user1143767

+0

오빠 환영합니다 – Triode

+0

왜 내가 classCast Exception을 얻는 지 모르겠다! – MSaudi

관련 문제