日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Android使用剪切板傳遞數(shù)據(jù)

瀏覽:189日期:2022-09-25 11:02:30

在Activity之間傳遞數(shù)據(jù)還可以利用一些技巧,不管windows還是Linux操作系統(tǒng),都會支持一種叫剪切板的技術(shù),也就是某一個程序?qū)⒁恍?shù)據(jù)復(fù)制到剪切板上,然后其他的任何程序都可以從剪切板中獲取數(shù)據(jù),在Android系統(tǒng)中也存在此技術(shù)。

使用剪切板會用到,ClipboardManager對象,這個對用剪切板會用到,ClipboardManager象用來操作剪切板,但是沒有提供public的構(gòu)造函數(shù)(單例模式),需要使用Activity.getSystemService(Context.CLIPBOARD_SERVICE)獲取該對象。

在Android-11(Android 3.0)版本之前,利用剪切板傳遞數(shù)據(jù)使用setText()和getText()方法,但是在此版本之后,這兩個方法就被棄用,轉(zhuǎn)而使用傳遞ClipData對象來代替。相對于getText和setText而言,利用ClipData對象來傳遞數(shù)據(jù),更符合面向?qū)ο蟮乃枷耄宜軅鬟f的數(shù)據(jù)類型也多樣化了。 

主要步驟:

通過getSystemService獲取ClipboardManager對象cm。

使用cm.setPrimaryClip()方法設(shè)置ClipData數(shù)據(jù)對象。

在新Activity中獲取ClipboardManager對象cm。

使用cm.getPrimaryClip()方法獲取剪切板的ClipData數(shù)據(jù)對象,cd。

通過cd.getItemAt(0)獲取到傳遞進(jìn)來的數(shù)據(jù)。

示例代碼

保存數(shù)據(jù):

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn=(Button)findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @SuppressLint('NewApi') @Override public void onClick(View v) { //獲取剪切板 ClipboardManager cm=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); cm.setPrimaryClip(ClipData.newPlainText('data', 'Jack')); // 或分2步寫 ClipData cd = ClipData.newPlain('label','Jack');cm.setPrimaryClip(cd);Intent intent=new Intent(MainActivity.this,otherActivity.class); startActivity(intent); } }); }

讀取數(shù)據(jù):

protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.other); ClipboardManager cm=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); ClipData cd=cm.getPrimaryClip(); String msg=cd.getItemAt(0).getText().toString(); TextView tv=(TextView)findViewById(R.id.msg); tv.setText(msg); }

以上方式使用剪切板傳遞的為String類型的數(shù)據(jù),如果需要傳遞一個對象,那么被傳遞的對象必須可序列化,序列化通過實現(xiàn)Serializable接口來標(biāo)記。

主要步驟:

創(chuàng)建一個實現(xiàn)了Serializable接口的類MyData。 存入數(shù)據(jù):獲取ClipboardManager,并對通過Base64類對MyData對象進(jìn)行序列化,再存入剪切板中。 取出數(shù)據(jù):在新Activity中,獲取ClipboardManager,對被序列化的數(shù)據(jù)進(jìn)行反序列化,同樣使用Base64類。然后對反序列化的數(shù)據(jù)進(jìn)行處理。

示例代碼:

步驟一:

public class MyData implements Serializable { private String name; private int age; public MyData(String name, int age) { super(); this.name = name; this.age = 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; } }

步驟二:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn=(Button)findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @SuppressLint('NewApi') @Override public void onClick(View v) { //獲取剪切板 ClipboardManager cm=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); MyData mydata=new MyData('jack', 24); String baseToString=''; ByteArrayOutputStream bArr=new ByteArrayOutputStream(); try { ObjectOutputStream oos=new ObjectOutputStream(bArr); oos.writeObject(mydata); baseToString=Base64.encodeToString(bArr.toByteArray(), Base64.DEFAULT); oos.close(); } catch (Exception e) { e.printStackTrace(); } cm.setPrimaryClip(ClipData.newPlainText('data',baseToString)); Intent intent=new Intent(MainActivity.this,otherActivity.class); startActivity(intent); } }); }

步驟三:

protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.other); ClipboardManager cm=(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); ClipData cd=cm.getPrimaryClip(); String msg=cd.getItemAt(0).getText().toString(); byte[] base64_btye=Base64.decode(msg, Base64.DEFAULT); ByteArrayInputStream bais=new ByteArrayInputStream(base64_btye); try { ObjectInputStream ois=new ObjectInputStream(bais); MyData mydata=(MyData)ois.readObject(); TextView tv=(TextView)findViewById(R.id.msg); tv.setText(mydata.toString()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }

總結(jié)

綜上所述,使用剪切板傳遞數(shù)據(jù)有利有弊,剪切板為Android系統(tǒng)管理的,所以在一個地方存入的數(shù)據(jù),在這個Android設(shè)備上任何應(yīng)用都可以訪問的到,但是正是因為此設(shè)備訪問的都是同一個剪切板,可能會導(dǎo)致當(dāng)前程序存入的數(shù)據(jù),在使用前被其他程序覆蓋掉了,導(dǎo)致無法保證正確獲取數(shù)據(jù)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久一区亚洲| 久久国产精品免费一区二区三区| 国产精品高清一区二区| 日本va欧美va欧美va精品| 亚洲精品系列| 国产一卡不卡| 麻豆精品久久| 精品一区二区三区视频在线播放| 国产精品一区三区在线观看| 国产精品欧美日韩一区| 国产精品白丝一区二区三区| 麻豆精品少妇| 亚洲人成在线网站| 精品捆绑调教一区二区三区| 999久久久国产精品| 在线综合亚洲| 中文字幕日本一区| 日韩高清二区| 麻豆视频久久| 播放一区二区| 欧美专区18| 欧美日韩黄网站| 精品一区二区三区的国产在线观看| 狠狠久久伊人中文字幕| 成人日韩在线观看| 丝袜美腿一区二区三区| 91成人福利| 久久久久久夜| 国产精品88久久久久久| 婷婷综合亚洲| 亚洲不卡视频| 精品视频在线一区二区在线| 视频二区不卡| 蜜桃视频一区二区三区 | 亚洲免费播放| 日韩av在线免费观看不卡| 久久精品免费看| 亚洲精品国产偷自在线观看| 亚洲精品日本| 91亚洲一区| 亚洲午夜免费| 美女久久99| 免费久久久久久久久| 7777精品| 一区二区小说| 国产午夜一区| 国产综合婷婷| 国产精品美女午夜爽爽| 国产综合精品| 欧美日韩一视频区二区| 亚洲天堂一区二区| 日韩不卡一区二区| 国产亚洲一区二区手机在线观看| 蜜桃免费网站一区二区三区| 精品99久久| 蜜臀av国产精品久久久久 | 日韩精品一区二区三区免费观影| 夜久久久久久| 国产一区二区三区亚洲综合| 91久久黄色| а√天堂8资源在线| 亚洲精品日韩久久| 欧美中文字幕一区二区| 国产欧美日韩一级| 99国产精品久久久久久久| 精品一区二区三区亚洲| 丝袜美腿一区二区三区| 日韩毛片视频| 国产精品免费精品自在线观看| 久久夜夜操妹子| 国产精品伊人| 一区二区三区午夜视频| 美女福利一区二区三区| 日本欧美一区二区| 午夜精品免费| 成人国产精品久久| 久久狠狠亚洲综合| 国产午夜精品一区二区三区欧美 | 国产精品香蕉| 久久午夜精品一区二区| 国产一区二区三区四区五区| 亚洲精品麻豆| 亚洲综合精品四区| 99精品视频在线| 国产极品一区| 亚洲18在线| 欧美专区一区二区三区| 99精品网站| 高潮一区二区| 精品日本视频| 久久精品99国产国产精| 亚洲最大av| 在线综合亚洲| 精品一区亚洲| 99久久99视频只有精品| 国产精品一区2区3区| 亚州欧美在线| 亚洲天堂av资源在线观看| 红桃视频国产一区| 999精品一区| 国产超碰精品| 日韩欧美网址| 中文字幕在线官网| 国产一区二区精品久| 欧美经典一区| 国产精品亚洲片在线播放| 日韩精品一区二区三区中文| 亚洲欧美日韩精品一区二区| 欧美一区二区三区高清视频| 国产成人黄色| 国产精品任我爽爆在线播放| 日韩高清一区在线| 婷婷久久免费视频| 一二三区精品| 日本一区二区中文字幕| 亚洲欧洲av| 日本视频中文字幕一区二区三区| 一区二区精彩视频| 亚洲人成亚洲精品| 亚洲欧美网站在线观看| 亚洲日产国产精品| 日本不卡的三区四区五区| 亚洲2区在线| 日韩欧美中文字幕在线视频| 蜜桃av一区二区在线观看| 亚洲永久字幕| 亚洲欧美在线综合| 日日夜夜免费精品视频| 日本欧美一区二区| 国产探花在线精品一区二区| 久久国产精品免费一区二区三区| 国产日本精品| 精品资源在线| 日韩中文影院| 婷婷中文字幕一区| 亚洲天堂免费| 国产三级一区| 麻豆精品在线观看| 日韩精品永久网址| 婷婷激情图片久久| 婷婷综合社区| 综合亚洲色图| 国产欧美日韩免费观看| 国产一区二区三区精品在线观看 | 首页欧美精品中文字幕| 免费看黄色91| 国产精品亚洲产品| 国产suv精品一区二区四区视频 | 国产一区三区在线播放| 香蕉视频亚洲一级| 99热免费精品| 日本va欧美va瓶| 精品午夜av| 91高清一区| 91嫩草精品| 国产成人精品999在线观看| 久久久夜精品| 久热re这里精品视频在线6| 日本欧美韩国一区三区| 国产成人免费av一区二区午夜| 91精品国产调教在线观看| 免费一级片91| 久久99国产精品视频| 久久中文字幕av一区二区不卡| 丝袜亚洲另类欧美| 美女视频一区在线观看| 亚洲一级少妇| 中文字幕日韩亚洲| 国产一区二区三区国产精品| 红桃视频国产精品| 国产精品最新| 国产一区二区中文| 国产欧美日韩免费观看| 久久免费国产| 久久国内精品| 激情五月色综合国产精品| 日韩av一级片| 天堂日韩电影| 欧美日韩99| 国产伊人精品| 国产欧美日韩一级| 国产精品99免费看| 国产精品一区二区三区美女 | 日韩三级久久| 亚洲电影有码| 日本在线视频一区二区| 日韩国产欧美| 日韩一区二区三区四区五区| 国产传媒av在线| 亚欧洲精品视频在线观看| 中文字幕在线官网| 日本va欧美va欧美va精品| 欧美日韩一二三四| 国产精品亚洲综合久久| 亚洲激情五月| 激情中国色综合| 日韩一区二区三区在线看| 久久精品官网| 老鸭窝一区二区久久精品| 天使萌一区二区三区免费观看|