现在我使用 onFocusListener 自动将光标移动到 EditText 字符串的末尾。当框被聚焦时,这工作得很好,但是,一旦聚焦,如果用户点击字符串中的某个位置,光标就会移动到那里。我尝试过实现除焦点(触摸、单击)之外的其他方法,当我这样做时,光标会短暂移动到末尾,但然后快速移动到用户单击的位置。有没有办法阻止用户单击光标位置并自动设置 setSelection(EditText.getText().length())?
/**
*
*/
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);
}
}
Run Code Online (Sandbox Code Playgroud)
此类确保当 EditText 内容发生更改时,它将光标设置到文本末尾。
| 归档时间: |
|
| 查看次数: |
2761 次 |
| 最近记录: |