亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android學習筆記--使用剪切板在Activity中傳值示例代碼

2020-04-11 12:07:15
字體:
來源:轉載
供稿:網友
在Activity之間傳遞數據還可以利用一些技巧,不管windows還是Linux操作系統,都會支持一種叫剪切板的技術,也就是某一個程序將一些數據復制到剪切板上,然后其他的任何程序都可以從剪切板中獲取數據,在Android系統中也存在此技術。

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

在Android-11(Android 3.0)版本之前,利用剪切板傳遞數據使用setText()和getText()方法,但是在此版本之后,這兩個方法就被棄用,轉而使用傳遞ClipData對象來代替。相對于getText和setText而言,利用ClipData對象來傳遞數據,更符合面向對象的思想,而且所能傳遞的數據類型也多樣化了?!?

主要步驟:
通過getSystemService獲取ClipboardManager對象cm。
使用cm.setPrimaryClip()方法設置ClipData數據對象。
在新Activity中獲取ClipboardManager對象cm。
使用cm.getPrimaryClip()方法獲取剪切板的ClipData數據對象,cd。
通過cd.getItemAt(0)獲取到傳遞進來的數據。

示例代碼
保存數據:
復制代碼 代碼如下:

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"));
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();
TextView tv=(TextView)findViewById(R.id.msg);
tv.setText(msg);
}

 以上方式使用剪切板傳遞的為String類型的數據,如果需要傳遞一個對象,那么被傳遞的對象必須可序列化,序列化通過實現Serializable接口來標記。
主要步驟:
創建一個實現了Serializable接口的類MyData。
存入數據:獲取ClipboardManager,并對通過Base64類對MyData對象進行序列化,再存入剪切板中。
取出數據:在新Activity中,獲取ClipboardManager,對被序列化的數據進行反序列化,同樣使用Base64類。然后對反序列化的數據進行處理。
示例代碼:
步驟一:
復制代碼 代碼如下:

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();
}
}

總結
綜上所述,使用剪切板傳遞數據有利有弊,剪切板為Android系統管理的,所以在一個地方存入的數據,在這個Android設備上任何應用都可以訪問的到,但是正是因為此設備訪問的都是同一個剪切板,可能會導致當前程序存入的數據,在使用前被其他程序覆蓋掉了,導致無法保證正確獲取數據。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品亚发布| 日本久久中文字幕| 国产精品一二三视频| 国产亚洲一区二区在线| 操日韩av在线电影| 亚洲国产欧美在线成人app| 日韩电影在线观看永久视频免费网站| 亚洲最大的网站| 亚洲精品电影在线| 4438全国成人免费| 日韩美女毛茸茸| 久久影视电视剧免费网站清宫辞电视| 欧美福利在线观看| 日韩精品视频免费在线观看| 亚洲欧美一区二区三区四区| 久久91亚洲人成电影网站| 亚洲一级免费视频| 日韩欧美在线中文字幕| 欧美美女操人视频| 清纯唯美日韩制服另类| 欧美一级淫片播放口| 欧美大片免费观看在线观看网站推荐| 九九热在线精品视频| 欧美精品videos性欧美| 中文字幕日韩精品有码视频| www.亚洲免费视频| 日产精品99久久久久久| 亚洲欧美日韩区| 国产ts人妖一区二区三区| 亚洲欧美色婷婷| 性视频1819p久久| 日韩中文字幕免费| 欧美有码在线观看视频| 日本精品视频在线播放| 日韩不卡在线观看| 欧美激情精品久久久| 色老头一区二区三区在线观看| 18性欧美xxxⅹ性满足| 亚洲大胆美女视频| 91精品中文在线| 国产精品视频导航| 欧美理论片在线观看| 日韩在线www| 国产精品99久久久久久www| 国产欧美日韩专区发布| 尤物yw午夜国产精品视频| 国产福利精品在线| 欧美国产极速在线| 91在线视频一区| 日韩av黄色在线观看| 夜夜嗨av一区二区三区免费区| 国产精品久久久久久久7电影| 久久久久久久国产精品| 九九九久久久久久| 91大神在线播放精品| 欧美精品久久久久| 久久久精品国产一区二区| 国产精品爱啪在线线免费观看| 欧美丰满少妇xxxxx做受| 亚洲精品v天堂中文字幕| 92版电视剧仙鹤神针在线观看| 自拍亚洲一区欧美另类| 伊人久久大香线蕉av一区二区| 久久久免费精品视频| 久久久免费精品视频| 欧美性理论片在线观看片免费| 一本一本久久a久久精品综合小说| 国产精品pans私拍| 亚洲字幕一区二区| 日韩专区中文字幕| 亚洲影院高清在线| 国产精品视频久久久| 国产小视频国产精品| 日韩av电影在线免费播放| 日韩电影在线观看永久视频免费网站| 日韩中文字幕亚洲| 午夜免费日韩视频| 欧美大片在线看| 亚洲人成在线观看网站高清| 国产成人小视频在线观看| 国产精品美女久久久久久免费| 性欧美视频videos6一9| 欧美日韩免费在线观看| 欧洲美女免费图片一区| 欧美高清理论片| 成人精品久久久| 97婷婷大伊香蕉精品视频| 91精品综合久久久久久五月天| 久久天天躁夜夜躁狠狠躁2022| 日韩成人av网| 中文字幕日韩视频| 中文字幕精品影院| 高清欧美一区二区三区| 亚洲成人黄色在线| 国产丝袜视频一区| 久久久国产精品免费| 91免费精品视频| 欧美精品做受xxx性少妇| 91久久久亚洲精品| 国产美女久久久| 亚州av一区二区| 国产精品久久久久久久久借妻| 亚洲高清福利视频| 亚洲精品国产精品国自产观看浪潮| 亚洲福利视频网站| 国产精品久在线观看| 久久理论片午夜琪琪电影网| 色综合导航网站| 久热精品视频在线免费观看| 九九热精品在线| 亚洲天堂精品在线| 亚洲成人黄色网| 亚洲欧美在线一区二区| 久久av在线播放| 欧美性猛交99久久久久99按摩| 91系列在线播放| 久久国产精品电影| 欧美在线欧美在线| 日韩av网站大全| 日韩中文字幕免费看| 欧美重口另类videos人妖| 中文字幕视频一区二区在线有码| 欧美影院久久久| 国产亚洲精品久久久久久牛牛| 成人免费直播live| 美女黄色丝袜一区| 欧美日韩午夜剧场| 中文字幕亚洲欧美日韩在线不卡| 欧美猛交免费看| 国语自产在线不卡| 欧美第一黄色网| 奇米4444一区二区三区| 国产精品精品国产| 国产精品美乳在线观看| 992tv成人免费视频| 91美女片黄在线观看游戏| 日韩欧美成人网| 人九九综合九九宗合| 最近2019中文字幕mv免费看| 国产成人激情小视频| 久久国产精品99国产精| 国产精品一二三视频| 亚洲第一区中文99精品| 91久久精品久久国产性色也91| 精品久久久久久中文字幕一区奶水| 亚洲欧美国产制服动漫| 亚洲欧美日韩视频一区| 91国产中文字幕| 亚洲成人动漫在线播放| 国产精品第8页| 一本色道久久88精品综合| 91在线免费视频| 成人免费淫片视频软件| 国产精品一区二区3区| 国产精品69精品一区二区三区| 精品久久久久久亚洲精品| 在线观看91久久久久久| 欧美肥臀大乳一区二区免费视频| 欧美黑人又粗大| 亚洲xxxx18| 国产91精品青草社区| 国产精品高清网站| 欧美黑人巨大精品一区二区| 国产精品r级在线|