怎样可以把手机app的文字复制出来_Android长按弹出选项框

怎样可以把手机app的文字复制出来_Android长按弹出选项框如果要实现长按复制文本,那么android是可以支持的,只要将textview的android:textIsSelectable=”true”就可以。Edittext继承textview,因此,,,查看TextView的API,里面就有这么一段介绍:ToallowuserstocopysomeoralloftheTextView’svalueandpasteitso…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

如果要实现长按复制文本,那么android是可以支持的,只要将textview的android:textIsSelectable=”true”就可以。 Edittext继承textview,因此,,,

查看TextView的API,里面就有这么一段介绍:

To allow users to copy some or all of the TextView’s value and paste it somewhere else, set the XML attributeandroid:textIsSelectableto “true” or callsetTextIsSelectable(true). The textIsSelectable flag allows users to make selection gestures in the TextView, which in turn triggers the system’s built-in copy/paste controls.

意思就是使用textIsSelectable属性就可以触发系统内置的复制/粘贴功能。

坑:

但是部分机型涉及到列表和Textview结合的时候,如ListLView内的Textview,RecyclerView中的Textview等,在部分机型上面会无法弹出应有的pop。 如红米note4X 的MIUI8.5,解决方式是将Textview的android:layout_width设为 MatchParent。

也有其他需要注意的地方,如viewGroup使用 afterDescendants,不能设置android:descendantFocusability=”blocksDescendants”

beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点。

但是考虑到不同rom可能不同,建议自己实现复制功能,如下

tvView.setOnLongClickListener(new OnLongClickListener() {

@Override

public boolean onLongClick(View v) {

ClipboardManager cm =(ClipboardManager)getContext().getSystemService(Context.CLIPBOARD_SERVICE);

cm.setText(orderDetailsTvOrderNumber.getText().toString());

return false;

}

});

ClipboardManager简单实用如下:

ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);

复制:

创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据)

ClipData clipData = ClipData.newPlainText(null,”文本数据”);

把数据集设置(复制)到剪贴板

clipboard.setPrimaryClip(clipData);

粘贴:

获取剪贴板的剪贴数据集

ClipData clipData = clipboard.getPrimaryClip();

if (clipData != null && clipData.getItemCount() > 0) {

CharSequence text = clipData.getItemAt(0).getText();//  从数据集中获取(已复制)第一条文本数据

System.out.println(“Clip text is : ” + text);

}

监听:

添加剪贴板数据改变监听器

clipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {

@Override    public void onPrimaryClipChanged() {

// 剪贴板中的数据被改变,此方法将被回调

}

});

移除指定的剪贴板数据改变监听器

clipboard.removePrimaryClipChangedListener(listener);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187893.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • intellij+idea+激活码【最新永久激活】2022.03.05

    (intellij+idea+激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月2日
    433
  • E667: Fsync failed

    E667: Fsync failed通过vim编辑文件/proc/sys/kernel/core_pattern,保存时报错E667:Fsyncfailed通过以下方式:echo“core-%e-%p-%t”|sudoddof=/proc/sys/kernel/core_pattern参考:https://askubuntu.com/questions/167819/im-getting-fsync-failed-…

    2022年5月25日
    162
  • 遗传算法经典实例matlab代码_遗传算法编码方式

    遗传算法经典实例matlab代码_遗传算法编码方式目录一、遗传算法概述二、遗传算法的特点和应用三、遗传算法的基本流程及实现技术3.1遗传算法的基本流程3.2遗传算法的实现技术1.编码2.适应度函数3.选择算子4.交叉算子5.变异算子6.运行参数四、遗传算法的基本原理4.1模式定理4.2积木块假设五、遗传算法编程实例(MATLAB)一、遗传算法概述遗传算法(…

    2025年11月5日
    1
  • docker 创建容器,端口映射(docker exec 进入容器)

    今天用docker的swarm搭建了一个集群,在启动主节点的swarm的时候出错了,报的错误是:/usr/bin/docker-current:Errorresponsefromdaemon:driverfailedprogrammingexternalconnectivityonendpointgoofy_bose(317173685c23c029fd5f28b88

    2022年4月16日
    75
  • 公司怎么建局域网_大型局域网组建教程

    公司怎么建局域网_大型局域网组建教程什么是局域网局域网(LocalAreaNetwork,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程

    2022年8月1日
    9
  • 查找历史市盈率

    查找历史市盈率https://www.zhihu.com/question/28424413

    2022年8月3日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号