怎样可以把手机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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手机版我的世界怎么查看自己的坐标_我的世界怎样tp坐标点

    手机版我的世界怎么查看自己的坐标_我的世界怎样tp坐标点我的世界手机版中坐标可以方便定位,但是在PE版中不像PC版那么方便可以直接查看坐标。今天4399蕾米为大家带来我的世界手机版坐标怎么看,PE版没有MOD怎么查看坐标,一起来学习一下吧!▍坐标怎么看1.在指令框中输入/tp~~~,输出指令以后就能看到自己的坐标。坐标相关的指令比图/tp/teleport/spawnpoint/setworldspawn等,都能通过~~~来表示当前位置…

    2022年9月23日
    3
  • 什么是mvc设计模式它有什么优点_简单介绍mvc设计模式

    什么是mvc设计模式它有什么优点_简单介绍mvc设计模式什么是MVC设计模式

    2025年6月9日
    5
  • 证明彼得森图不是平面图

    证明彼得森图不是平面图使用反证法设彼得森图是平面图,那么按照欧拉公式R=E-V+2(R为面,E为边,V为结点)这里E=15,V=10但是彼得森图每个面至少有5条边,由推论可得3m<=5*(n-2)即15<=5/3*8矛盾,于是彼得森图不是平面图…

    2022年5月23日
    55
  • 第二范式和bcnf范式区别(bcnf范式通俗解释)

    第一范式:数据库的每一列都是不可分割的基本数据项,强调列的原子性。即列不可以再拆分。第二范式:建立在第一范式的基础上,每一个非主属性要完全函数依赖于候选键(或者说是主键,任一个候选键都可以做主键)。即非主键列完全依赖于主键,而不能是依赖于主键的一部分,必须满足两个条件:1.必须有一个主键;2.没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。第三范式(3NF)建立在第二范式的基础上,任何非主属性不依赖于其它非主属性。即每一个非主属性都不传递依赖于该范式的候选键。即非主键列只依赖于主键

    2022年4月16日
    64
  • 24.CSS表格与列表

    24.CSS表格与列表

    2022年3月13日
    37
  • java深拷贝和浅拷贝_java数组copyof

    java深拷贝和浅拷贝_java数组copyof实现拷贝有几点:1)实现Cloneable接口2)重写Object类中的clone方法,并将可见性从protect改为public3)克隆需要调用super.clone(),也就是Object的实现方法浅拷贝和深拷贝的区别:浅拷贝是指拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量),而不拷贝对象包含的引用指向的对象。深拷贝不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象。以下代码说明了浅拷…

    2022年9月26日
    2

发表回复

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

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