textview可复制_android长按点击

textview可复制_android长按点击有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的,就像长按WebView或者EditText的内容就自动弹出复制选项.这里面主要是2个特点:1,用户只能浏览文本信息而不能编辑这些文本信息;2,用户对着文本信息长时间点按可以弹出”复制”选项实现复制;网上有好多种方法可实现,也比较零散,此处做个小结,希望有所帮助.1,通过继承EditT…

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

Jetbrains全系列IDE稳定放心使用

有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的, 就像长按WebView或者EditText的内容就自动弹出复制选项.

这里面主要是2个特点:

1,用户只能浏览文本信息而不能编辑这些文本信息;

2,用户对着文本信息长时间点按可以弹出”复制” 选项实现复制;

网上有好多种方法可实现,也比较零散, 此处做个小结,希望有所帮助.

1,通过继承EditText,自定义TextView

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

public class NewTextViewextends EditText {

public NewTextView(Context context) {

super(context);

// TODO Auto-generated constructor stub

}

public NewTextView(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub

}

public NewTextView(Context context, AttributeSet attrs,int defStyle) {

super(context, attrs, defStyle);

// TODO Auto-generated constructor stub

}

@Override

protected boolean getDefaultEditable() {//禁止EditText被编辑

return false;

}

}

上面很关键的一个方法是getDefaultEditable(), return false;即禁止EditText被编辑,变成了不可编辑的EditText, 但同时具有EditText的长按复制功能. 更进一步的,如果查看EditText源码, 就发现源码中有一个方法protected void onCreateContextMenu(ContextMenu menu)

控制了EditText长按弹出的上下文菜单, 可以自定义这个方法且实现为空protected void onCreateContextMenu(ContextMenu menu){   }

然后在onTouchEvent事件中拦截处理自定义的点按事件, 弹出自定义的菜单.

原理如上, 更直白简单的方法是直接在xml中使用一个EditText, 并且将属性设置为 android:editable=”false” .

2,使用OnLongClickListener

直接使用TextView, 然后在代码里给TextView添加OnLongClickListener事件,长按时弹出自定义 “复制” 菜单(比如结合 PopupWindow做弹出菜单). 点击”复制” 就去获取TextView的内容.

当然, 这里只是获取内容, 如何将内容放入粘贴管理器还需要一个ClipboardManager 对象.它负责管理复制后粘贴的这件事.

1

2

3

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

cmb.setText(content.trim());//将内容放入粘贴管理器,在别的地方长按选择”粘贴”即可

cm.getText();//获取粘贴信息

3,使用setTextIsSelectable()方法

代码中直接对TextView使用setTextIsSelectable()方法,将TextView设置成可点按选择的即可.

1

2

TextView tv =new TextView(context);

tv.setTextIsSelectable(true);

上面就是常见的长按文本信息弹出”复制”菜单的一些方法小结了,希望对大家有所帮助.

原文链接:http://www.androidchina.net/1258.html

[Android] TextView长按复制实现方法小结(转载)

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

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

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


相关推荐

  • No mapping found for HTTP request with URI [xxxx] in DispatcherServlet with name ‘xxx’「建议收藏」

    No mapping found for HTTP request with URI [xxxx] in DispatcherServlet with name ‘xxx’「建议收藏」搭建SSM环境时测试springMVC时出现个很有趣的问题: 测试webapp下的index.jsp没问题,但是测试hello就出现问题。当访问hello时出现如下问题:解决方案:         之前扫描包时这样:           <context:component-scan base-package="com.itshenjin.controller.*…

    2022年6月13日
    32
  • 移动端避免使用100vh[通俗易懂]

    移动端避免使用100vh[通俗易懂]CSS中的视口单位听起来很棒。如果要设置元素的样式以占据整个屏幕的高度,则可以设置height:100vh,您拥有一个完美的全屏元素,该元素会随着视口的变化而调整大小!可悲的是,事实并…

    2022年6月9日
    68
  • sublime text 3 + python配置,完整搭建及常用插件安装

    sublime text 3 + python配置,完整搭建及常用插件安装公众号:战渣渣四年的时间,一直使用EmEditor编辑器进行Python开发,之前是做面向过程,只需要将一个单独的py文件维护好即可,用着也挺顺手,但是最近在做面向对象的开发,不同的py文件中相互关联较多,感觉单纯使用EmEditor编辑器确实有些低效(主要是对EmEditor的插件都不熟悉,然后逐个py文件的查找)。在网上搜索了一些Python开发的编辑器和IDE,有…

    2022年7月11日
    16
  • python pymssql_Python模块-pymssql[通俗易懂]

    python pymssql_Python模块-pymssql[通俗易懂]Python默认的数据库是SQLlite,不过它对MySql以及SQLserver的支持也可以。如果想链接操作SQLserver,需使用第三方包pymssqlpymssql是一个Python的数据库接口,基于FreeTDS构建,对_mssql模块进行了封装,遵循Python的DBAPI规范,而FreeTDS是一个C语言连接sqlserver的公共开源库工作原理使用connect创建连接对象;…

    2022年6月16日
    41
  • 微商城分销系统:微商运营管理系统搭建介绍

    微商城分销系统:微商运营管理系统搭建介绍“互联网+”时代背景下,计算机信息处理技术的数据技术已经无法满足日益增长的数据存储需求。因此,工作人员要大力发开计算机信息处理技术的数据存储功能,促进存储技术发展,推动计算机信息处理技术在“互联网”时代中进步与发展。计算机信息处理技术的信息存储技术,是计算机在对信息数据进行加工后,将其保存在计算机系统的空间中,为使用者后期调取和查看做准备。微商城分销系统能够准确即时管理分销商,掌握分销商的销售情况,从而了解产品的销售情况,重要的是不仅实现了产品的销售与推广,还可以根据消费者的需求来改变产品的供求,了解市场

    2022年5月16日
    32
  • EasyExcel,让excel导入导出更加简单

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:风雨兼程 jianshu.com/p/8f3defdc76d4 EasyExcel 在做excel导入导出的时…

    2021年6月27日
    151

发表回复

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

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