iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android利用剪切板传递数据
  • 818
分享到

android利用剪切板传递数据

数据Android 2022-06-06 14:06:58 818人浏览 泡泡鱼
摘要

本文主要介绍Android应用android系统中剪切板进行数据的传递,首先讲解的是传递简单数据,然后讲解传递对象类型的数据。 所有实例均在android api 15下测试通

本文主要介绍Android应用android系统中剪切板进行数据的传递,首先讲解的是传递简单数据,然后讲解传递对象类型的数据。

所有实例均在android api 15下测试通过,所以先新建一个android应用程序。

- 传递简单类型数据

步骤一:修改主Activity,增加一个按钮,id为button。


<RelativeLayout xmlns:android="Http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context="com.example.appintent3.MainActivity" >
 <Button
 android:id="@+id/button"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentTop="true"
 android:layout_centerHorizontal="true"
 android:layout_marginTop="34dp"
 android:text="利用OutPutStream进行传递对象" />
</RelativeLayout>

步骤二:在MainActivity类里面绑定button,以及利用剪切板进行数据传递,代码如下:


@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 button = (Button)this.findViewById(R.id.button);
 button.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  Intent intent = new Intent(MainActivity.this,OtherActivity.class);
  ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
  clipboardManager.setText("luzongfeng:17");
  startActivity(intent);
  }
 });
 }

步骤三:新建otherActivity,添加TextView控件,id为textView.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >
 <TextView
 android:id="@+id/textView"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:text="" />
</LinearLayout>

步骤四:在OtherActivity里面进行textView以及从剪切板中获取数据.


private TextView textView;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_other);
 textView=(TextView)this.findViewById(R.id.textView);
 ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
 String myString = (String)clipboardManager.getText();
 textView.setText(myString);
 }

步骤五:别忘了在清单中进行OtherActivity注册


 <application
 android:allowBackup="true"
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name"
 android:theme="@style/AppTheme" >
 <activity
  android:name=".MainActivity"
  android:label="@string/app_name" >
  <intent-filter>
  <action android:name="android.intent.action.MAIN" />
  <cateGory android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
 </activity>
 <activity android:name=".OtherActivity"></activity> 
</application>

以上就是主要实现过程,具体有些类的使用可以参考Android Api。运行结果如下。

- 传递对象类型数据

传递对象类型数据无需再增加任何控件,只是需要增加一个实体类,便于我们进行数据传输。

步骤一:新建实体类MyData,实现Serializable接口,便于进行字节流的传输。


package com.example.appintent3;
import java.io.Serializable;
public class MyData implements Serializable {
 private String name;
 private int age;
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public int getAge() {
 return age;
 }
 public void setAge(int age) {
 this.age = age;
 }
 public MyData(String name, int age) {
 super();
 this.name = name;
 this.age = age;
 }
}

步骤二:在MainActivity里面进行对象类型的数据封装以及传输。


@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 button = (Button)this.findViewById(R.id.button);
 button.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
  Intent intent = new Intent(MainActivity.this,OtherActivity.class);
  MyData myData = new MyData("luzongfeng", 17);
  //将对象转换成字符串
  ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
  String base64String = "";
  try {
   ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
   objectOutputStream.writeObject(myData);
   base64String = Base64.encodeToString(byteArrayOutputStream.toByteArray(), Base64.DEFAULT);
   objectOutputStream.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
  clipboardManager.setText(base64String);
  startActivity(intent);
  }
 });
 }

步骤三:在OtherActivity类里面进行数据接收及显示。


@Override
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_other);
 textView=(TextView)this.findViewById(R.id.textView);
 ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
 String myString = (String)clipboardManager.getText();
 byte[] base64_byte = Base64.decode(myString, Base64.DEFAULT);
 ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(base64_byte);
 try {
  ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
  MyData myData = (MyData)objectInputStream.readObject();
  textView.setText(myData.getName()+":"+myData.getAge());
 } catch (Exception e) {
  e.printStackTrace();
 }  
 }

运行结果如下:

代码部分就算实现完了,相关涉及数据流转换的部分如有不清楚的可以百度看看类的使用,反正就是字节流写进去,字节流再读出来,Base64这个是android框架工具类,可以进行加密解密。

您可能感兴趣的文章:Android学习笔记--使用剪切板在Activity中传值示例代码Android使用剪切板传递数据


--结束END--

本文标题: android利用剪切板传递数据

本文链接: https://www.lsjlt.com/news/29844.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • win10剪切板数据如何清除
    这篇文章主要讲解了“win10剪切板数据如何清除”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win10剪切板数据如何清除”吧!按“Windows+I”键,打开“Windows设置”,点击“...
    99+
    2023-07-01
  • Android项目中如何利用Intent传递数据
    Android项目中如何利用Intent传递数据?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Intent是什么public class Intent implements...
    99+
    2023-05-31
    android intent roi
  • 利用Python通过获取剪切板数据实现百度划词搜索功能
    目录一、实现划词功能二、运行错误三、解决问题一、实现划词功能 说是划词翻译,实际上我们是通过获取用户的剪切板内容,通过一系列的操作得到的。首先呢,我们就先实现如何获取剪切板内容的程序...
    99+
    2024-04-02
  • Android使用Intent传递组件大数据
    目录数据传输替代方案数据传输 在Android开发过程中,我们常常通过Intent在各个组件之间传递数据。例如在使用startActivity(android.content.Int...
    99+
    2024-04-02
  • Android如何监控App使用剪切板权限的行为?
    要使用Android Studio监控剪贴板权限记录,你可以按照以下步骤进行操作: 创建一个新的Android项目: 打开Android Studio并创建一个新的Android项目。选择适当的项目名称、包名和其他配置选项。 添加剪贴板...
    99+
    2023-09-04
    android
  • 怎么利用python在剪贴板上读取/写入数据
    这篇文章主要介绍了怎么利用python在剪贴板上读取/写入数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么利用python在剪贴板上读取/写入数据文章都会有所收获,下面我们一起来看看吧。读取剪贴板上的数据...
    99+
    2023-07-02
  • 如何利用python在剪贴板上读取/写入数据
    目录读取剪贴板上的数据将数据写入剪贴板补充:python 剪切板写入文件,产生随机数写入剪切板总结读取剪贴板上的数据 先给大家介绍pandas.read_clipboard,从剪贴板...
    99+
    2024-04-02
  • Android中怎么使用Activity和Fragment传递数据
    Android中怎么使用Activity和Fragment传递数据,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。第一种方式,也是最常用的方式,就是使用Bundle来传递参数&n...
    99+
    2023-05-30
    fragment activity android
  • Android应用中如何利用get与post方式向服务器传递数据
    这篇文章将为大家详细讲解有关Android应用中如何利用get与post方式向服务器传递数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。需要在布局文件中增加两个个EditText控件和两个...
    99+
    2023-05-31
    android get post
  • Android registerForActivityResult新用法实现两个Activity间数据传递
    目录前言startActivityForResult用法Activity Results API介绍registerForActivityResult()常规用法前言 今天在做项目...
    99+
    2023-05-14
    Android registerForActivityResult Activity间数据传递
  • vue.js中怎么利用props传递参数
    vue.js中怎么利用props传递参数,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. 问题发现在父组件中,需要向表格组件传递的数据有...
    99+
    2024-04-02
  • android界面是如何进行数据传递的
    android界面是如何进行数据传递的?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。主界面:package com.yy.activity.value;import and...
    99+
    2023-05-31
    android roi %d
  • 怎么利用jQuery post传递含特殊字符的数据
    本篇内容介绍了“怎么利用jQuery post传递含特殊字符的数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2024-04-02
  • 怎么使用Android registerForActivityResult实现两个Activity间数据传递
    这篇文章主要介绍“怎么使用Android registerForActivityResult实现两个Activity间数据传递”,在日常操作中,相信很多人在怎么使用Android registerForActivityR...
    99+
    2023-07-05
  • Android应用中怎么实现Activity之间的数据传递
    本篇文章为大家展示了Android应用中怎么实现Activity之间的数据传递,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MainActivitypublic class MainActivity...
    99+
    2023-05-31
    android roi activity
  • Android跨进程传递大数据的方法实现
    最近要从Service端给Client端传递图片数据,之前的数据都是通过aidl传递: 创建 Parcelable文件 ImageData.java public clas...
    99+
    2024-04-02
  • 在Android中怎么实现与Activity的数据传递
    在Android中怎么实现与Activity的数据传递?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用Inten的putExtra传递第一个Activity中//创建意图对象...
    99+
    2023-05-31
    activity android roi
  • 如何使用Python通过获取剪切板数据实现百度划词搜索功能
    小编给大家分享一下如何使用Python通过获取剪切板数据实现百度划词搜索功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、实现划词功能说是划词翻译,实际上我们...
    99+
    2023-06-15
  • Vue中怎么利用axios将传递的json数据转换为form data
    这篇文章给大家介绍Vue中怎么利用axios将传递的json数据转换为form data,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。修改main.js文件中axios的配置:在发送请...
    99+
    2024-04-02
  • 怎么使用POST方法传递数据
    本篇内容介绍了“怎么使用POST方法传递数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用POST方法传递数据使用POST方法向服务器传...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作