gpt4 book ai didi

java - Android:不允许用户在 EditText 中选择光标位置?

转载 作者:行者123 更新时间:2023-11-29 03:49:36 25 4
gpt4 key购买 nike

现在我使用 onFocusListener 自动将光标移动到 EditText 字符串的末尾。当框被聚焦时,这很好用,但是,一旦聚焦,如果用户点击字符串中的某个位置,光标就会移动到那里。除了 Focus(触摸、单击)之外,我还尝试过实现其他方法,当我这样做时,光标会短暂地移动到末尾,但随后会快速移动到用户单击的位置。有没有一种方法可以防止用户单击光标位置并自动设置选择(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);
}

}

This class ensure that when ever a change happened for the EditText content it will set the cursor to the end of the text.

关于java - Android:不允许用户在 EditText 中选择光标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9389089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com