首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EditText中未显示Android默认的剪切/复制/粘贴

在EditText中未显示Android默认的剪切/复制/粘贴选项可能是由于以下几个原因:

  1. 缺少文本选择功能:EditText默认情况下是没有启用文本选择功能的,因此无法显示剪切/复制/粘贴选项。要启用文本选择功能,可以通过设置EditText的textIsSelectable属性为true来实现:
代码语言:txt
复制
<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textIsSelectable="true" />
  1. 缺少上下文菜单:剪切/复制/粘贴选项通常通过上下文菜单显示。如果EditText没有设置上下文菜单,那么这些选项就不会显示出来。可以通过注册上下文菜单来实现:
代码语言:txt
复制
EditText editText = findViewById(R.id.editText);
registerForContextMenu(editText);

然后在Activity中重写onCreateContextMenu()方法来创建上下文菜单:

代码语言:txt
复制
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    getMenuInflater().inflate(R.menu.context_menu, menu);
}

res/menu目录下创建context_menu.xml文件,并添加剪切/复制/粘贴选项:

代码语言:txt
复制
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/cut"
        android:title="剪切" />
    <item
        android:id="@+id/copy"
        android:title="复制" />
    <item
        android:id="@+id/paste"
        android:title="粘贴" />
</menu>

最后,重写onContextItemSelected()方法来处理选项的点击事件:

代码语言:txt
复制
@Override
public boolean onContextItemSelected(MenuItem item) {
    EditText editText = findViewById(R.id.editText);
    switch (item.getItemId()) {
        case R.id.cut:
            editText.cut();
            return true;
        case R.id.copy:
            editText.copy();
            return true;
        case R.id.paste:
            editText.paste();
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}

这样,当用户长按EditText时,上下文菜单将显示剪切/复制/粘贴选项。

  1. 自定义文本选择菜单:如果你想要自定义剪切/复制/粘贴选项的样式或行为,可以通过使用ActionMode来实现。首先,为EditText设置一个长按监听器,当用户长按时,创建并显示ActionMode:
代码语言:txt
复制
EditText editText = findViewById(R.id.editText);
editText.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        getMenuInflater().inflate(R.menu.custom_selection_menu, menu);
        return true;
    }

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

    @Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        EditText editText = findViewById(R.id.editText);
        int start = editText.getSelectionStart();
        int end = editText.getSelectionEnd();
        CharSequence selectedText = editText.getText().subSequence(start, end);
        switch (item.getItemId()) {
            case R.id.cut:
                editText.getText().replace(start, end, "");
                mode.finish();
                return true;
            case R.id.copy:
                ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
                ClipData clip = ClipData.newPlainText("text", selectedText);
                clipboard.setPrimaryClip(clip);
                mode.finish();
                return true;
            case R.id.paste:
                editText.getText().replace(start, end, clipboard.getPrimaryClip().getItemAt(0).getText());
                mode.finish();
                return true;
            default:
                return false;
        }
    }

    @Override
    public void onDestroyActionMode(ActionMode mode) {
    }
});

res/menu目录下创建custom_selection_menu.xml文件,并添加剪切/复制/粘贴选项:

代码语言:txt
复制
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/cut"
        android:title="剪切" />
    <item
        android:id="@+id/copy"
        android:title="复制" />
    <item
        android:id="@+id/paste"
        android:title="粘贴" />
</menu>

这样,当用户长按EditText时,自定义的文本选择菜单将显示剪切/复制/粘贴选项。

对于以上问题,腾讯云提供了一系列云计算相关的产品和服务,如云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。更多关于腾讯云产品的信息,请参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

安卓应用安全指南 六、困难问题

假设用户从其他应用(如记事本,Web 浏览器或邮件应用)复制字符串,然后将其粘贴到你应用EditText。 事实证明,在这种情况下,基本没有对策,来防止由于复制粘贴而导致敏感信息泄漏。...接下来讨论是上面的对策(2),假设用户复制应用显示敏感信息。 在这种情况下,防止泄漏有效对策是,禁止来自视图(TextView,EditText等)复制/剪切操作。...在这种情况下,禁止复制/剪切最简单方法是禁用视图长按。 禁用视图长按可以在layout.xml文件规定。 下面展示了示例代码,用于从EditText字符串选择菜单删除复制/剪切条目。...,请遵循以下规则: 6.1.2.1 禁用视图中显示复制/剪切字符串(必需) 如果应用存在显示敏感信息视图,并且允许在视图中像EditText一样复制/剪切信息,信息可能会通过剪贴板泄漏。...因此,必须在显示敏感信息视图中禁用复制/剪切。 有两种方法禁用复制/剪切。 一种方法是从字符串选择菜单删除复制/剪切条目,另一种方法是禁用视图长按。

1.2K10

Android开发 经验技巧汇总(基于Android Studio)(一)

默认AppTheme: 修改后AppTheme: <style...首先最简单两个动画,写在了XML里面,当然也可以写到java, 第一个in_animation.xml,第二个out_animation.xml, 第一步:Android里面已经有了TextSwitcher...Studio工程,配置环境; 第四步,将BaiduLBS_Android.jar加入环境变量(右键,Add As Library),并在appbuild.gradleandroid添加;...7.Android设置EditText默认取消焦点 在EditText父控件,添加两个属性即可, 如下, android:focusable="true" android:focusableInTouchMode...(3)将ClipData数据复制到剪贴板: ClipboardManager.setPrimaryClip(ClipData对象); (4)从剪贴板获取ClipData数据: ClipboardManager.getPrimaryClip

68320
  • Android自由选择TextView文字 博客分类: Android AndroidUP

    用过EditText都知道,EditText有个特点,当在里面长按时候,会出现一个ContextMenu,提供了选择文字,复制剪切等功能。...TextView是很多View基类,如Button、EditText都是继承自他,所以EditText里面的代码很少。...我们看看TextViewonTouchEvent、onTrackballEvent和onKeyEvent方法里面就明白了,在这些事件回调调用了ArrowKeyMovementMethod里面的这些方法...在TextView里面找onCreateContextMenu,果然有,里面定义了选择、复制粘贴等选项。       既然找到了这个,那么我们就可以进一步分析选择是如何做到。      ...android.widget.EditText; /** * @author chroya */ public class TextPage extends EditText { private

    2.4K10

    会自动化不存在

    1 目 标 场 景 如果你经常需要 发朋友圈,无论是哪里复制文案,直接粘贴后到输入框发送出去,肯定会被官方 折叠 处理,因此,应用市场上出现了很多防折叠输入法 App。...需要注意是,由于界面元素 id 经常会变动,为了增加程序可适配性,可以换一种方案:查找元素树第一个 EditText 元素。 接着,我们通过遍历拿到当前界面的所有节点元素。...利用上下文系统服务拿到 ClipboardManager 管理器,从剪切读取第一条数据。...第 5 步,编写界面 首次打开应用时候,默认无障碍服务是关闭,需要手动去开启一次。 开启服务之后,就可以使用朋友圈防折叠服务了。 ?...3 结 果 结 论 通过上面的 5 步操作,就完成了朋友圈防折叠服务开发。 平常使用时候,只需要开启防折叠无障碍服务,复制任务文案,打开朋友圈发布界面,服务会自动化完成输入。

    44430

    Android 自定义验证码输入框实例代码(支持粘贴连续性)

    需求 1、能自定义输入框个数和样式 2、支持长按粘贴剪切板内容自动填充(粘贴连续性) 其中第2点是最为重要,正是其他人没有这点,逼得自己弄一个 示例 别人示例: ?...粘贴居然不支持连续性,只能粘贴第一个字符,所以用有点难受 自己示例: ?...原理 大致是Edittext + n* TextView,然后设置edittext字体跟背景颜色都为透明,隐藏光标 Edittext:监听edittext每次输入一个字符就赋值到对应TextView上...,然后在清空自己 下划线:在TextView下面添加View 光标:这里每个TextView焦点光标其实对View设置了ValueAnimator 粘贴粘贴弹窗是自定义PopupWindow 源码有详细注释...输入框背景色支持类型 1、@drawable/xxx 2、@color/xxx 3、#xxxxxx 总结 以上所述是小编给大家介绍Android 自定义验证码输入框实例代码(支持粘贴连续性),希望对大家有所帮助

    3K20

    textview可复制_长按复制是怎么做

    前段时间因为项目需求实现TextView长按复制功能,特意上百度差了一下有不少实现这个功能方法,隔了好久也怕忘了,总结一下: 先推荐目前感觉最好用方法: 在布局文件TextView控件属性增加一句话...点击”复制” 就去获取TextView内容。(PS : 这里是获取内容,而我们还需要将内容放入粘贴管理器还需要一个ClipboardManager 对象.它负责管理复制粘贴这件事。...); cmb.setText(content.trim()); //将内容放入粘贴管理器,在别的地方长按选择"粘贴"即可 cm.getText();//获取粘贴信息 2、使用EditText,和TextView...一样在xml里面直接加一句话android:editable=”false” 可以实现,不过需要注意,使用EditText的话需要设置一个背景色,或者设置空也行,缺点是不能在java代码动态设置。...但同时具有EditText长按复制功能。

    1.9K20

    Linux Vim编辑器基本使用

    3)vim编辑器安装 ☆ 已安装 Linux通常都已经默认安装好了 vi 或 Vim 文本编辑器,我们只需要通过vim命令就可以直接打开vim编辑器了,如下图所示: ☆ 安装 有些精简版Linux...☆ 命令模式 使用VIM编辑器时,默认处于命令模式。在该模式下可以移动光标位置,可以通过快捷键对文件内容进行复制粘贴、删除等操作。...① 复制当前行(光标所在那一行) 按键:yy 粘贴:在想要粘贴地方按下p 键【将粘贴在光标所在行下一行】,如果想粘贴在光标所在行之前,则使用P键 ② 从当前行开始复制指定行数,如复制5行,5yy...在VIM编辑器剪切与删除都是dd 如果剪切了文件,但是没有使用p进行粘贴,就是删除操作 如果剪切了文件,然后使用p进行粘贴,这就是剪切操作 ① 剪切/删除当前光标所在行 按键:dd (删除之后下一行上移...) 粘贴:p 注意:dd 严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除效果。

    3.2K21

    Vim编辑器

    1.3 vim编辑器安装1)已安装Centos通常都已经默认安装好了 vi 或 Vim 文本编辑器。当命令行输入“vim”显示如下所示画面时,视为 Vim 安装成功。...移动光标、复制粘贴剪切粘贴删除、撤销与恢复。...4)复制/粘贴(重点)(1)复制当前行(光标所在那一行)按键:yy粘贴︰在想要粘贴地方按下 p键【将粘贴在光标所在行下一行】 ,如果想粘贴在光标所在行之前,则使用P(shift+p)键(2)从当前行开始复制指定行数...5)剪切/删除在VIM编辑器剪切与删除都是dd。如果剪切了文件,但是没有使用 p进行粘贴,就是删除操作。如果剪切了文件,然后使用p进行粘贴,这就是剪切操作。...=> 代表强制退出但是文件保存 (不建议使用)默认情况下,退出时候需要对已经进行修改文件进行保存 :w ,然后才能退出。

    85222

    安卓开发_浅谈ContextMenu(上下文菜单)

    长下文菜单,即长按view显示一个菜单栏 与OptionMenu区别 OptionMenu对应是activity,一个activity只能拥有一个选项菜单 ContextMenu对应是View,每个..."); 6 menu.add(1, 101, 1, "粘贴"); 7 menu.add(1, 102, 1, "剪切"); 二、xml文件静态实现 1 MenuInflater...,看下菜单项各个属性: 1、 android:id= 是菜单项id 2、android:orderInCategory= 是菜单项优先级,值越大,优先级越多,当菜单项过多时,可隐藏在折叠菜单...这个属性可接受值有:     1.alaways:这个值会使菜单项一直显示在ActionBar上。     2.ifRoom:如果有足够空间,这个值会使菜单显示在ActionBar上。     ...4.withText:这个值使菜单和它图标,菜单文本一起显示

    1.5K60

    Android开发 经验技巧汇总(基于Android Studio)(二)

    实现 方法二:通过单元测试实现 4.在EditText软键盘调起、关闭 5.禁止EditText自动弹出软键盘 6.EditText输入文本从右边开始显示 7.判断APP是否联网 8.检查网络连接状态变化无网络时跳转到设置界面...,方法参数: String srcPath 传入assets文件夹下某个文件夹名,如上述apks,可传入为空”“字符,则复制到SD后,默认将assets文件夹下所有文件复制; String sdPath...项目切换为project,找到app下libs,将你下载jar包复制粘贴进去 ?...:focusable="false"// 键盘永不弹出 5.禁止EditText自动弹出软键盘 (1)在包含EditText父布局添加android:focusable="true"和android...输入文本从右边开始显示 在进行计算器等开发时候,常常需要在EditText控件输入文本从右边开始显示: 在xml文件中加入android:gravity="right"或者android:gravity

    1.3K20

    Android上图片文字识别

    (我只下载了中文和英语包)下载链接:点击打开链接,需要放到手机SD卡根目录,我应用中直接打包进apk,免得需要拷贝麻烦,但是造成结果就是apk体积变得非常大,各位根据各自情况做取舍,后面我会贴出打包进...,可修改识别错误后,点击复制到安卓粘贴板,具体代码如下,就不多说了: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res...(new File(IMG_PATH, "temp.jpg"))); startActivityForResult(intent, PHOTO_CAPTURE); } }; // 复制数据到剪切板........"); else tvResult1.setText("识别......"); // 显示选择图片 showPicture(ivSelected, bitmapSelected...,代码源码贴上:点击打开链接(辛苦手打收两个积分,如果积分不够可在下面留下邮箱,我看到后第一时间发送源码) 因上传源码有大小限制,故吧源码语言库删掉了,下载后只需把文章开始tessdata语言包下两个文件拷贝进

    32.3K30

    webview长按复制_android studio点击按钮显示文本

    被编辑 return false; } } 上面很关键一个方法是getDefaultEditable(), return false;即禁止EditText被编辑,变成了不可编辑EditText,...但同时具有EditText长按复制功能...., 可以自定义这个方法且实现为空protected void onCreateContextMenu(ContextMenu menu){ } 然后在onTouchEvent事件拦截处理自定义点按事件...原理如上, 更直白简单方法是直接在xml中使用一个EditText, 并且将属性设置为 android:editable=”false” . 2,使用OnLongClickListener 直接使用TextView...点击”复制” 就去获取TextView内容. 当然, 这里只是获取内容, 如何将内容放入粘贴管理器还需要一个ClipboardManager 对象.它负责管理复制粘贴这件事.

    2.1K30

    薅羊毛 | Python 自动化带你轻松赚钱(完结版)

    2 准 备 工 作 在编写代码之前,需要做如下准备工作: 1、配置好 Android ADB 开发环境 2、Python 虚拟环境内安装 pocoui 依赖库 3、操作剪切应用 APK,下载链接见文末...通过预先得到关键字,置入到输入框,然后点击搜索按钮,一直等待搜过列表出现为止。 需要注意是,有些控件元素需要点击多次才能算一次有效点击事件。...可以通过点击复制按钮,将订单号粘贴到系统剪切板,然后利用 adb + clipper 这款 App拿到剪切内容。...,【复制】按钮第一页不一定能显示出来 try: copy_element = self.poco(text='复制') except Exception...__swipe(True) break # 复制剪切版本 copy_element.click() # 从剪切板拿到数据 result = exec_cmd

    2.2K30

    Linux04:(4.6k)vim编辑器「建议收藏」

    .退出方式 补充一些win10下快捷键 Linux_day04 一.vim编辑器 vim三种模式 命令模式 不能对文件直接编辑,但可以通过快捷键删除行,复制粘贴,移动光标等 编辑模式-输入...,再按yy复制 粘贴 在想要粘贴地方:p 剪切/删除 剪切/删除光标所在行:dd(下一行补位) 删除/剪切多行:数字dd(下一行补位) 删除/剪切所在行:D(不补位) ---- 选定文本块...d 剪切选定块到缓冲区; dd 剪切整行 d^ 剪切至行首 d$ 剪切至行尾 dw 剪切一个word dG 剪切至档尾 粘贴命令式p,即paste(粘贴) p 小写p代表贴至游标后(下...如:默认显示行号 set nu ;显示不着色 syntax off c.全局配置文件(vim自带,位置在/etc/vimrc,一般不要修改) 当既有个人配置文件又有全局配置文件时,优先执行个人配置文件...--- wq保存退出 重新登陆当前用户,才能生效(su更改用户,再切回来) ---- 4.退出方式 vim退出可以用:q(操作)或:wq(已操作) 更合适退出方法是:x(有操作就保存,

    1.7K20

    PhpStorm使用教程(本地运行PHP+远程开发+快捷键)

    在出现弹窗,有两种运行模式:JavaScript表示在浏览器运行,PHP Script表示在PhpStorm运行。 ?...2、配置服务器项目目录 点击Mappings,选择本地项目地址、服务器项目地址(注意这里是从上一步设置项目根目录开始)、服务器网站目录地址,并选择设置为默认服务器。 ?...常用快捷键 复制剪切 Ctrl + C 复制文本, 除了可以复制选中文本,在不选中文本时,会直接复制当前光标所在行 Ctrl + X 粘贴文本,除了可以剪切选中文本,在不选中文本时,会直接剪切当前光标所在行...Ctrl + D 复制当前行,这里是直接复制当前行到编辑器而不是在剪切板,相当于同时执行了复制粘贴 Ctrl + Y 删除当前行 粘贴 Ctrl+V 直接粘贴 Ctrl+Shift+V 打开一个弹窗...,显示最近复制条目,选中后粘贴 撤销 Ctrl + Z 撤销 Ctrl + Shift + Z取消撤销 Ctrl + Alt + Z 整体恢复到编辑之前版本,需要版本控制配合 换行 Enter 换行

    6.4K20

    薅羊毛 | Python 自动化带你轻松赚钱

    2 准 备 工 作 在编写代码之前,需要做如下准备工作: 1、配置好 Android ADB 开发环境 2、Python 虚拟环境内安装 pocoui 依赖库 3、操作剪切应用 APK,下载链接见文末...通过预先得到关键字,置入到输入框,然后点击搜索按钮,一直等待搜过列表出现为止。 需要注意是,有些控件元素需要点击多次才能算一次有效点击事件。...可以通过点击复制按钮,将订单号粘贴到系统剪切板,然后利用 adb + clipper 这款 App拿到剪切内容。...,【复制】按钮第一页不一定能显示出来 try: copy_element = self.poco(text='复制') except Exception...__swipe(True) break # 复制剪切版本 copy_element.click() # 从剪切板拿到数据 result = exec_cmd

    1K30

    EditText 集锦 - 开发中常用用法及遇到各种坑

    前言 EditText ,文本输入框,一个再熟悉不过控件,在开发当中,我们需要经常用到。这边文章,主要是记录 EditText 常用用法,需要时候可以直接复制张贴,提高效率。...,建议使用android:inputType属性替代. android:textAlignment //设置EditText中文本显示位置,center(居中),inherit(默认,居左边显示),viewStart...(居左显示),viewEnd(居右显示),textStart(居左显示),textEnd(居右显示).这里需要注意是最低支持API版本是17,前两个可以在API14使用,而后面使用就会报红线… android...//设置文本类型,用于帮助输入法显示合适键盘类型. android:maxLength //设置EditText最多接受文本个数. android:lines //设置EditText显示行数..., 0); } 取消 EditText 默认获取焦点行为 在EditText父级控件找一个,添加这两个属性: android:focusable="true" android:focusableInTouchMode

    2.3K20

    学会这21条,你离 Vim 大神就不远了!

    复制粘贴 普通模式中使用y复制 yy 复制游标所在整行(3yy表示复制3行) y^ 复制至行首,或y0。不含光标所在处字符。 y$ 复制至行尾。含光标所在处字符。...剪切粘贴 dd 其实就是剪切命令,剪切当前行 ddp 剪切当前行并粘贴,可实现当前行和下一行调换位置 正常模式下按v(逐字)或V(逐行)进入可视模式 然后用jklh命令移动即可选择某些行或字符...利用p命令可以对剪切内容进行粘贴 :1,10d 将1-10行剪切。利用p命令可将剪切内容进行粘贴。 :1, 10 m 20 将第1-10行移动到第20行之后。 10....[]括起来 更改设定 :set nu 显示行号 set autoindent(ai) 设置自动缩进 set autowrite(aw) 设置自动存档,默认打开 set backup(...bk) 设置自动备份,默认打开 set background=dark或light,设置背景风格 set cindent(cin) 设置C语言风格缩进 :set ts=4 设置tab键转换为

    1.1K30
    领券