Android 在没有 ContextMenu 的情况下选择 TextView/EditText 上的文本

标签 android

正如我们在 TextViewEditText 中所知,在选择文本后我们有 ContextMenu,我的问题是:如何在没有 的情况下选择文本code>ContextMenu 或禁用显示?

此代码有效,但无法选择文本的原因

public class MyEditText extends AppCompatEditText {
    private final Context mContext;
    private       int     mPreviousCursorPosition;

    public MyEditText(Context context) {
        super(context);
        this.mContext = context;
    }

    public MyEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.mContext = context;
    }

    public MyEditText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        this.mContext = context;
    }

    @Override
    protected void onSelectionChanged(int selStart, int selEnd) {
        CharSequence text = getText();
        if (text != null) {
            if (selStart != selEnd) {
                setSelection(selStart, selEnd);
                return;
            }
        }
        mPreviousCursorPosition = selStart;
        super.onSelectionChanged(selStart, selEnd);
    }
}

最佳答案

对于 API 级别 11 或更高级别,执行此操作:

edittext.setCustomSelectionActionModeCallback(new ActionMode.Callback() {

        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        public void onDestroyActionMode(ActionMode mode) {
        }

        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            //This will prevent opening the menu
            return false;
        }

        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            return false;
        }
    });

进一步阅读:

关于Android 在没有 ContextMenu 的情况下选择 TextView/EditText 上的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46263151/

相关文章:

android - 具有可展开和可折叠列的表格或网格

Android以编程方式安装apk错误-Package Parse error

android - 使用 C2DM 开发时的未知权限

键盘消失时的Android白色背景

android - Fiddler 代理不适用于 Android Lollipop 模拟器

java - 使用 rxjava 从实现可观察外部调用方法的自定义类发送事件

javascript - 如果我使用 $.mobile.changePage() 则页面无法正确显示

java - 突出显示并选择图像的一部分 Android?

android - Ionic 4 - 如何在 Web 浏览器中打开 URL 而不是在 Android App 上的应用程序中打开 webview?

java - 实时数据库快照的存储位置