你可以编码你从视图中进行选择,并复制到剪贴板中的文本。 然后,如果您将该代码粘贴到任何其他应用程序中,则只能看到编码的字符串。 在您的应用程序,你需要粘贴到您的视图之前对数据进行解码

在这里,我将提供代码来支持我的发言:

public class MainActivity extends Activity {

EditText editText;

private ClipboardManager myClipboard;

private ClipData myClip;

String base64;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);

editText = (EditText) findViewById(R.id.editText3);

editText.setCustomSelectionActionModeCallback(new Callback() {

@Override

public boolean onPrepareActionMode(ActionMode mode, Menu menu) {

// TODO Auto-generated method stub

return false;

}

@Override

public void onDestroyActionMode(ActionMode mode) {

// TODO Auto-generated method stub

}

@Override

public boolean onCreateActionMode(ActionMode mode, Menu menu) {

// TODO Auto-generated method stub

return true;

}

@Override

public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

// TODO Auto-generated method stub

switch (item.getItemId()) {

case android.R.id.copy:

int min = 0;

int max = editText.getText().length();

if (editText.isFocused()) {

final int selStart = editText.getSelectionStart();

final int selEnd = editText.getSelectionEnd();

min = Math.max(0, Math.min(selStart, selEnd));

max = Math.max(0, Math.max(selStart, selEnd));

}

// Perform your definition lookup with the selected text

final CharSequence selectedText = editText.getText()

.subSequence(min, max);

String text = selectedText.toString();

byte[] data = null;

try {

data = text.getBytes("UTF-8");

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

base64 = Base64.encodeToString(data, Base64.DEFAULT);

myClip = ClipData.newPlainText("text", base64);

myClipboard.setPrimaryClip(myClip);

Toast.makeText(getApplicationContext(), "Text Copied",

Toast.LENGTH_SHORT).show();

// Finish and close the ActionMode

mode.finish();

return true;

case android.R.id.cut:

return true;

case android.R.id.paste:

int min2 = 0;

int max2 = editText.getText().length();

if (editText.isFocused()) {

final int selStart = editText.getSelectionStart();

final int selEnd = editText.getSelectionEnd();

min2 = Math.max(0, Math.min(selStart, selEnd));

max2 = Math.max(0, Math.max(selStart, selEnd));

}

// Perform your definition lookup with the selected text

final CharSequence selectedText2 = editText.getText()

.subSequence(min2, max2);

String text2 = selectedText2.toString();

ClipData abc = myClipboard.getPrimaryClip();

ClipData.Item item11 = abc.getItemAt(0);

String text1 = item11.getText().toString();

byte[] dataDecode = Base64.decode(text1, Base64.DEFAULT);

String textDecode = null;

try {

textDecode = new String(dataDecode, "UTF-8");

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

editText.getText().replace(min2, max2, textDecode, 0,

textDecode.length());

Toast.makeText(getApplicationContext(), "Text Pasted",

Toast.LENGTH_SHORT).show();

// mode.finish();

return true;

default:

break;

}

return false;

}

});

}

}

这里我试图重写它出现在行动中复制和粘贴方法当用户长时间点击EditText栏时, 我的解决方案是隐藏其他应用程序中的数据的替代方法。

粘贴弹出当你在文本插入手柄和粘贴选项,然后单击当您选择一些文本和长点击它说到这,都是从我的观察不同出现。

为了用浆糊弹出的工作,我创建了一个自定义的EditText类和I类定义做所需的任务的方法。这是...

/**

* An EditText, which notifies when something was cut/copied/pasted inside it.

*/

public class MonitoringEditText extends EditText {

private final Context context;

private ClipboardManager myClipboard;

String base64;

EditText editText = (EditText) findViewById(R.id.editText3);

/*

* Just the constructors to create a new EditText...

*/

public MonitoringEditText(Context context) {

super(context);

this.context = context;

}

public MonitoringEditText(Context context, AttributeSet attrs) {

super(context, attrs);

this.context = context;

}

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

super(context, attrs, defStyle);

this.context = context;

}

@Override

public boolean onTextContextMenuItem(int id) {

myClipboard = (ClipboardManager) context

.getSystemService(Context.CLIPBOARD_SERVICE);

boolean consumed = super.onTextContextMenuItem(id);

switch (id) {

// case android.R.id.cut:

// onTextCut();

// break;

case android.R.id.paste: // here I am catching that pop up paste event

try {

onTextPaste();

} catch (UnsupportedEncodingException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

break;

// case android.R.id.copy:

// onTextCopy();

//

}

return consumed;

}

// /**

// * Text was pasted into the EditText.

// * @throws UnsupportedEncodingException

// */

public void onTextPaste() throws UnsupportedEncodingException {

int min2 = 0;

int max2 = editText.getText().length();

if (editText.isFocused()) {

final int selStart = editText.getSelectionStart();

final int selEnd = editText.getSelectionEnd();

min2 = Math.max(0, Math.min(selStart, selEnd));

max2 = Math.max(0, Math.max(selStart, selEnd));

}

ClipData abc = myClipboard.getPrimaryClip();

ClipData.Item item = abc.getItemAt(0);

String text = item.getText().toString(); //text is my encoded data

byte[] data = Base64.decode(text, Base64.DEFAULT);

String text1 = new String(data, "UTF-8"); //text1 is decoded data

editText.getText().replace(min2, max2, text1);

String fullText = editText.getText().toString();

editText.setText(fullText.replace(text, ""));

}

}

android 复制应用程序,Android限制复制,粘贴在应用程序之间查看相关推荐

  1. android edittext不可复制_Android EditText禁止复制粘贴

    1,自定义EditText package com.example.ui; import android.annotation.SuppressLint; import android.content ...

  2. unity Android 剪贴板,Unity移动端的复制要这么写示例代码

    前言 Unity官网提供了详尽的文档和丰富的教学视频,昨天跟着视频做了一个简单的3d游戏"roll-a-ball".游戏涉及了许多Unity的基本知识,用来入门很不错. 本文主要给 ...

  3. Android TextView长按复制实现,Android复制文本

    代码调用系统复制粘贴板 //获取剪贴板管理器:ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_S ...

  4. androidq获取文件正式路径_还在担心后台复制红包口令 Android Q系统升级将解决这一问题...

    还在担心后台复制红包口令 Android Q系统升级将解决这一问题 2019年01月28日 10:33作者:陈浩天编辑:陈浩天文章出处:泡泡网原创 分享 随着Google I/O大会越来越近,新And ...

  5. Android复制查词功能,有道词典Android 3.6版发布 新增“复制查词”功能

    有道词典Android 3.6版发布 新增"复制查词"功能 2013-03-06 13:40:43  来源:网络 扫码可以: 1.在手机上浏览 2.分享给微信好友或朋友圈 摘要: ...

  6. android 复制控件,Android长按复制文本功能

    安卓一般能用到长按复制的控件Textview,Editext,可能也有WebView 在开始之前先说一个我遇到的一个坑: viewGroup中有一个这个属性android:descendantFocu ...

  7. android调用系统相册将图片复制到指定目录下并显示复制进度

    最近在做一个类似文件管理器,app是采用本地数据库模拟目录的方式,管理与其手机储存对应的存储文件.那么需求来了,需要在app中添加一张从本地相册中选出来的照片,并将照片复制到自己app指定的目录下.这 ...

  8. android 复制文件 代码,将android项目从一台计算机复制到另一台计算机后找不到classes.dex文件...

    我已经将两个android项目从一台机器复制到另一台机器上,并且我正试图在模拟器上运行相同的项目,但是每次我得到两个项目相同的错误.错误如下: C:\Users\Abhi\Desktop\Ashish ...

  9. android开发复制文本,如何在Android应用中以编程方式复制文本?

    因此,每个人都同意应如何完成此工作,但是由于没人愿意提供完整的解决方案,因此请按以下步骤进行: int sdk = android.os.Build.VERSION.SDK_INT; if(sdk & ...

最新文章

  1. 2亿美元投入+软硬件新服务!华为加速构建计算产业生态,侯金龙:要与开发者共成长...
  2. hihocoder 1931 最短管道距离
  3. vs2008下设置.h, .lib和 .dll 的路径配置全图及其意义
  4. 如何在其他程序的窗口上创建按钮并使之能响应
  5. artTemplate模板引擎的源码拜读
  6. linux性能测试cpu内存io,Linux下磁盘IO性能测试工具介绍
  7. ARM处理器系统初始化编程注意事项
  8. java-用cmd运行java命令
  9. 自定义计算器 android,Android 简单计算器的实现
  10. 马未都说收藏:陶瓷篇-常见瓷器器形分类
  11. JAVA解析字符串数学公式
  12. 为什么IT厂商争着向云计算厂商转型?
  13. 回首过去展望未来——14年年终总结
  14. java姓名隐藏中间一个_如何正确的隐藏java语言中的名字
  15. 企业跨境电商平台服务解决方案,跨境电子商务贸易业务框架搭建运维
  16. Visual Studio 2010各个版本比较
  17. 红利逐渐消失殆尽的互联网下半场,前路何方?
  18. 笔记记录--基于ccpd数据集利用Paddle OCR训练车牌检测模型
  19. Dilworth定理
  20. 共享经济时代下如此多的“美食平台”,为什么它成功的生存下来了

热门文章

  1. Android的线程使用来更新UI----Thread、Handler、Looper、Time...
  2. View-client自动登录
  3. php ios通用的AES加密方法
  4. 备份软件选择---gengzy@dc
  5. 用友重拳出击 布局BI剑指何处?
  6. Linux 命令(129)—— passwd 命令
  7. java Calendar的学习分享
  8. springboot-属性提示
  9. MongoDB(三):MongoDB概念解析
  10. 计算机设计思想 —— 解耦(分离)与内聚