android复制与粘贴

news2024/11/15 0:00:52

官网关于复制的教程:https://developer.android.google.cn/guide/topics/text/copy-paste?hl=zh-cn

关于Android 13模拟器无法运行可查看这篇文章:https://blog.csdn.net/android_cai_niao/article/details/131422541

界面UI如下:
在这里插入图片描述
界面中有两个输入框,点击 copy 按钮会复制第一个输入框中的文本,点击 paste按钮会把复制的文本粘贴到第二个输入框,实现代码如下:

class MainActivity : AppCompatActivity() {

    private val binding: ActivityMainBinding by lazy { ActivityMainBinding.inflate(layoutInflater) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(binding.root)
        binding.copyButton.setOnClickListener { copyText() }
        binding.pasteButton.setOnClickListener { pasteText() }
    }

    private fun copyText() {
        val text = binding.srcEdit.text.trim().toString()
        if (text.isEmpty()) {
            Toast.makeText(this, "请输入一些文本", Toast.LENGTH_SHORT).show()
            return
        }

        val cm = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager

        // 将要复制的数据放到一个剪贴对象中
        val clipData = ClipData.newPlainText("", text)

        // 设置数据为敏感内容,则在剪贴板中文本会显示为星号
        clipData.description.extras = PersistableBundle().apply { putBoolean(ClipDescription.EXTRA_IS_SENSITIVE, true) }

        // 把剪贴对象放到剪切板中
        cm.setPrimaryClip(clipData)

		// 由于Android 12或更低的版本没有复制反馈,所以这里使用一个toast进行反馈
        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2) {
            Toast.makeText(this, "已复制", Toast.LENGTH_SHORT).show()
        }
    }

    private fun pasteText() {
        val cm = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager

        // 如果剪贴板有数据,且是文本类型的数据
        if (cm.hasPrimaryClip() && cm.primaryClipDescription?.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN) == true) {
            val item = cm.primaryClip?.getItemAt(0)
            val pasteText = item?.text ?: ""
            binding.pasteEdit.setText(pasteText)
        }
    }
    
}

在Android 13版本中,复制时会提示出复制的内容,且可设置为显示为星号,使用了原生模拟器测试,发现复制时必须在输入法显示的情况下才会有提示,且输入法本身也有显示出复制的内容,而且不显示为星号,复制提示才会显示为星号,所以这个应该是目前的Bug吧,效果如下:
在这里插入图片描述
我们把设置为显示星号的代码注释掉再次运行,结果如下:

在这里插入图片描述
这时可以看到两个位置都显示出复制的内容了,且都是明文显示。在我的小米11 pro (Android 13)上运行时,无论输入法有无显示,点 “copy” 按钮时均无复制提示,相同的是,如果输入法显示时在输入法上也会显示出复制的内容,且无论是否设置为密文都是明文显示的。

点击 paste 按钮进行粘贴,系统会弹出toast进行提示,效果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/709467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

事务的传播

七种传播机制支持当前事务不支持当前事务嵌套事务 七种传播机制 事务传播机制&#xff1a;解决一个事务在多个方法传递的问题 传播机制有以下7种 REQUIRED (默认)&#xff1a;如果当前存在事务&#xff0c;则加入该事务&#xff0c;如果不存在事务&#xff0c;则创建一个新事务…

DEBUG 系列二:Configure Debugger Layer

还拿之前的例子&#xff1a; https://mp.weixin.qq.com/s/a0Ia2wzFPGWjN988uutg7Q 前台操作dump了 然后debug分析原因的时候发现是这里的问题 进这标准函数看看 里面用到的是全局变量 go_hugm 说明这个函数使用时还有一系列配套的其他函数&#xff0c;都应该在它所对应的函数组…

[RSIC-V]Milk-V开发板 i2c测试oled及波形输出

I2C3 引脚图 修改i2c3复用功能 build\boards\cv180x\cv1800b_sophpi_duo_sd\u-boot\cvi_board_init.c //I2C3 pin6 7 PINMUX_CONFIG(SD1_CMD, IIC3_SCL); PINMUX_CONFIG(SD1_CLK, IIC3_SDA);扫描I2C3上的设备 [rootcvitek]~# i2cdetect -y -r 3 0 1 2 3 4 5 6 7 8 9 a b c …

wpf 3d立方体上的按钮

新建一个WPF工程&#xff1b; 引入3D Tools&#xff1b;前面已经说了&#xff0c;引入之后&#xff0c;不用写代码即可实现3D物体的鼠标操作&#xff1b; xaml代码如下&#xff1b; <Window x:Class"thrbtn.MainWindow"xmlns"http://schemas.microsoft.com…

时序预测 | MATLAB实现BO-LSTM贝叶斯优化长短期记忆神经网络股票价格预测

时序预测 | MATLAB实现BO-LSTM贝叶斯优化长短期记忆神经网络股票价格预测 目录 时序预测 | MATLAB实现BO-LSTM贝叶斯优化长短期记忆神经网络股票价格预测效果一览基本介绍研究过程程序设计参考资料效果一览 基本介绍 时序预测 | MATLAB实现BO-LSTM贝叶斯优化长短期记忆神经网络…

3.原理图设计的快捷键和方法

3.原理图设计的快捷键和方法 一、使用建议 1.1 Altium designer使用建议 善用help&#xff0c;窗口右上角❓可用于显示提示&#xff1b;多看Knowledge Centor 添加元件、布局布线的注意要点 布局时&#xff1a;1、优先考虑重要接口、传感器的布局&#xff1b;2、电阻电容的…

论文笔记 CPU Accounting for Multicore Processors

Abstract 确定了对CPU utilization的不准确测量是如何影响OS的几个关键方面的这篇文章提出来了一个比CPU utilization更准确的性能评估指标 In this paper, we identify how an inaccurate measurement of the CPU utilization affects several key aspects of the system suc…

英语语法学习_incomplete

在语言学中&#xff0c;自然语言的语法是说话者或作者在从句、短语和单词的构成上的一套结构约束。1 「语法」实际上有两个概念&#xff0c;一是「语法」&#xff08;也叫「文法」&#xff09;&#xff0c;二是「语法学」。 一、语法&#xff1a;客观存在的语言结构规律&#x…

2014年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题——纯享题目版

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;考取过HCIE Cloud Computing、CCIE Security、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &#x1f495;兴趣爱好&#xff1a;b站天天刷&…

深入理解 Golang: Channel 管道

Channel 的使用 Channel 声明方法 chInt : make(chan int) // unbuffered channel 非缓冲通道chInt : make(chan int, 0) // unbuffered channel 非缓冲通道chInt : make(chan int, 2) // bufferd channel 缓冲通道 Channel 基本用法 ch <- x // channel 接收数据 xx &l…

Python 使用 NetworkX

Python 使用 NetworkX 说明&#xff1a;本篇文章主要讲述 python 使用 networkx 绘制有向图&#xff1b; 1. 介绍&安装 NetworkX 是一个用于创建、操作和研究复杂网络的 Python 库。它提供了丰富的功能&#xff0c;可以帮助你创建、分析和可视化各种类型的网络&#xff…

Linux-Bash的基本特性

Linux-Bash的特性应用&#xff1a; 按命令展开&#xff1a; {} 花括号是Bash支持的一种特殊符号&#xff0c;可以简单的理解为小学时学的乘法结合率。 例如&#xff1a; echo {1..10} 1 2 3 4 5 6 7 8 9 101…10 表示1到10&#xff0c;则整个命令可以理解为echo 1 echo 2 ec…

MFC多文档绘制不同图形

VC6新建一个多文档项目&#xff1b;根据窗口标题的最后数字&#xff0c;绘制不同图形&#xff1b; void CPrdView::OnDraw(CDC* pDC) {CPrdDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1 pDoc->GetTitle();CPoin…

[abc周赛复盘] AtCoder Beginner Contest 308 20230701

[abc周赛复盘] AtCoder Beginner Contest 308 20230701 总结A - New Scheme1. 题目描述2. 思路分析3. 代码实现 B - Default Price1. 题目描述2. 思路分析3. 代码实现 C - Standings1. 题目描述2. 思路分析3. 代码实现 D - Snuke Maze1. 题目描述2. 思路分析3. 代码实现 E - M…

Apache Doris (十四) :聚合模型的局限性、模型选择建议及列定义建议

目录 1. 聚合模型的局限性 2.数据模型的选择建议 2.1 Aggregate数据模型选择 ​​​​​​​​​​​​​​2.2 Unique数据模型选择 ​​​​​​​​​​​​​​2.3 Duplicate数据模型选择 ​​​​​​​3. 列定义建议 进入正文之前&#xff0c;欢迎订阅专题、对博文点…

天津大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 天津大学&#xff08;B&#xff09;考研难度&#xff08;☆☆☆☆&#xff09; 天津大学计算机考研主要招生学院在智能与计算学部、佐治亚理工深圳学院、新媒体与传播学院。招生学院较多&#xff0c;目前均已出拟录取…

时间序列分解 | Matlab奇异谱分析SSA做信号去噪、分解

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列分解 | Matlab奇异谱分析SSA做信号去噪、分解 部分源码 %----------------------

HPM6750系列--第四篇 搭建Visual Studio Code开发调试环境

一、目的 在之前的博客《HPM6750系列--第二篇 搭建Ubuntu开发环境》、《HPM6750系列--第三篇 搭建MACOS编译和调试环境》我们介绍了基于命令行的编译调试过程&#xff0c;整个过程稍微有些繁琐可能有些小伙伴不太习惯&#xff0c;那么本篇就介绍一下在Visual Studio Code下的开…

【Linux系统编程】shell的感性理解

文章目录 1. shell是什么&#xff1f;它有什么作用&#xff1f;2. 通过一个故事感性理解shell的运行机制开端发展波澜渐起&#xff08;正常命令的处理&#xff09;故事角色与处理过程中各部分的映射走向高潮&#xff08;非法请求的处理&#xff09;shell 存在的意义结尾 1. she…

Leetcode-每日一题【142.环形链表Ⅱ】

题目 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部…