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

webview长按复制_android studio点击按钮显示文本publicclassNewTextViewextendsEditText{publicNewTextView(Contextcontext){super(context);//TODOAuto-generatedconstructorstub}publicNewTextView(Contextcontext,AttributeSetattrs){super(co…

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

Jetbrains全系列IDE稳定放心使用

public class NewTextView extends 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 对象.它负责管理复制后粘贴的这件事.

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

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

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

3,使用setTextIsSelectable()方法

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

TextView tv = new TextView(context);

tv.setTextIsSelectable(true);

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

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

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

(0)
上一篇 2026年4月18日 下午1:55
下一篇 2026年4月18日 下午2:01


相关推荐

  • 报java.lang.AssertionError错误:

    报java.lang.AssertionError错误:1 在使用 Assert assertEquals 时报一个错误 2 首先 我们的明白 Assert 的用法 assert boolean 表达式 如果 boolean 表达式 为 true 则程序继续执行 如果为 false 则程序抛出 AssertionErr 并终止执行 assert boolean 表达式 错误信息表达式 如果 boolean 表达式 为 true 则程序继续执行 如果为 f boolean 表达式 错误信息表达式 boolean 表达式 boolean 表达式 boolean 表达式

    2026年3月26日
    2
  • JS格式化数据

    JS格式化数据前端经常遇到要处理后台返回的 JSON 数据 并且希望能够按照一定格式进行展示 便于读者查看 此方法便可以进行操作 lettxt sender tuser1 agentid ip sender

    2026年3月18日
    2
  • 联想推出OpenClaw免费一键安装服务

    联想推出OpenClaw免费一键安装服务

    2026年3月17日
    3
  • S3服务器规格和性能指标,云服务器s3与s4

    S3服务器规格和性能指标,云服务器s3与s4云服务器s3与s4内容精选换一换创建一台或多台云服务器。V1.1版本创建云服务器的接口兼容了V1版本创建云服务器(按需)的功能,同时合入新功能,支持创建包年/包月的弹性云服务器。本接口为异步接口,当前创建云服务器请求下发成功后会返回job_id,此时创建云服务器并没有立即完成,需要通过调用查询任务的执行状态查询job状态,当Job状态为SUCCESS时代表云服务器创在申请SAPS/4HAN…

    2022年5月11日
    61
  • 命名规范与规则

    命名规范与规则命名规范1、项目名全部小写,就是如果项目名是多个英语单词组成的,每个单词都要全部小写。如:doubanssm。2、包名全部小写。3、类名首字母大写,若类名由多个单词构成,每个单词首字母大写,即

    2022年7月1日
    35
  • Python在线和离线安装第三方库

    Python在线和离线安装第三方库Windows 环境 1 离线安装首先在线搜索并下载你需要的第三方库 网址 https pypi org project 安装 whl 包 pipinstall whl 前提是要安装好 pip 和 wheel 安装 tar gz 包 cd 到解压后路径 pythonsetup pyinstall 安装 pip 和 wheel 都可以参照这种方法 命令窗口

    2026年3月27日
    2

发表回复

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

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