Intent傳遞數據的方法


一、傳遞List
1.傳遞List<String>的方法
ArrayList<String> info = new ArrayList<String>();
info.add(weibo);
Intent intent = new Intent(MainActivity.this, ResultActivity.class);
intent.putStringArrayListExtra("infoList", info);
startActivity(intent);

接收
ArrayList<String> infoList = new ArrayList<String>();
infoList = getIntent().getStringArrayListExtra("infoList");

2. 傳遞List<Integer>的方法
intent.putIntegerArrayListExtra(key, list);
list =(ArrayList<Integer>) getIntent().getIntegerArrayListExtra(key);

二.、傳遞Object

1.使用Serializable方式
前提:Object需要實現Serializable接口
用Serializable方式傳遞Object的語法:bundle.putSerializable(key,object);
用Serializable方式接收Object的語法:object=(Object) getIntent().getSerializableExtra(key);
實現Serializable接口就是把對象序列化,然后再傳輸,和Java的常用編程沒什么明顯區別,而且Object不需要明顯改變,推薦用這種方式。

SerInfo serInfo = new SerInfo(name, website, weibo);
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putSerializable("serinfo", serInfo);
intent.setClass(MainActivity.this, ResultActivity.class);
intent.putExtras(bundle);
startActivity(intent);
//獲得Serializable方式傳過來的值
SerInfo serInfo = (SerInfo) getIntent().getSerializableExtra("serinfo");

2.使用Parcelable方式
前提:Object需要實現Parcelable接口
用Parcelable方式傳遞Object的語法:bundle.putParcelable(key,object);
用Parcelable方式接收Object的語法:object=(Object) getIntent().getParcelableExtra(key);
實現Parcelable接口的類比較復雜,Parcelable是個什么東西呢?

三、傳遞List<Object>

ArrayList<SerInfo> listObj = new ArrayList<SerInfo>();
SerInfo serInfo1 = new SerInfo(name, website, weibo);
SerInfo serInfo2 = new SerInfo(name, website, weibo);
listObj.add(serInfo1);
listObj.add(serInfo2);
Intent intent = new Intent();
intent.setClass(MainActivity.this, ResultActivity.class);
intent.putExtra("listobj", (Serializable) listObj);
startActivity(intent);

//獲得傳過來的List<Object>
ArrayList<SerInfo> listObj = (ArrayList<SerInfo>) getIntent().getSerializableExtra("listobj");

關注微信公眾號獲得更多內容:

                                                            

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM