Intent传递数据

1、传递单个简单数据

传递的数据类型包含 byte、short、 Int、long、char、 float、double、 String、boolean等等

存Int类型数据:

Intent intent1 = new Intent(SelectActivity.this,FuneralInformationTVActivity.class);
intent1.putExtra("NUMBER",39);
startActivity(intent1);

取Int类型数据:


Intent intent = this.getIntent();
/*
参数一:KEY
参数二:默认值
*/
int value = intent.getIntExtra("NUMBER", 39);

2、传递多个简单数据

传递的数据类型包含 byte、short、 Int、long、char、 float、double、 String、boolean等等

存多个Int类型数据

Intent intent1 = new Intent(SelectActivity.this,FuneralInformationTVActivity.class);
intent1.putExtra("NUMBER",39);
intent1.putExtra("TYPE",2); 
startActivity(intent1);

取多个Int类型数据:

Intent intent = this.getIntent();
/*
参数一:KEY
参数二:默认值
 */
int value = intent.getIntExtra("NUMBER", 39);
int type = intent.getIntExtra("TYPE", 0); 

3、传递简单数据类型的数组

存单个String类型的数组

Intent intent1 = new Intent(SelectActivity.this,FuneralInformationTVActivity.class);
intent1.putExtra("ARRAYS",new String[]{"张三","李四"});
startActivity(intent1);

取单个String 类型的数组

Intent intent = this.getIntent();
String[] arrays = intent.getStringArrayExtra("ARRAYS");
LogUtils.i(TAG,arrays);

4、传递简单数据类型的集合

存单个String类型的集合

Intent intent2 = new Intent(SelectActivity.this,FuneralInformationTVActivity.class);
intent2.putExtra(Constants.TV_TYPE_ID,41);
ArrayList<String> strings = new ArrayList<>();
strings.add("张三");
strings.add("李四");
intent2.putStringArrayListExtra("LIST",strings);
startActivity(intent2);

取单个String类型的集合

Intent intent = this.getIntent();
ArrayList<String> list = intent.getStringArrayListExtra("LIST");

5、传递对象数据

5.1、首先需要将传递的对象的类进行序列化,也就是实现Serializable接口

package com.casic.intelligentmine.entity;

import java.io.Serializable;

/**
* @author Administrator
* @projectLargeScreen
* @packagecom.casic.intelligentmine.entity
* @date2020/5/30 13:59
* @brief:
*/
public class Dog implements Serializable {
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

5.2、然后传递对象数据

Intent intent2 = new Intent(SelectActivity.this,FuneralInformationTVActivity.class);
Dog dog = new Dog();
dog.setName("小黄");
intent2.putExtra("OBJECT",dog);
startActivity(intent2);

5.3、接收传递过来的对象数据

Intent intent = this.getIntent();
Dog dog = (Dog) intent.getSerializableExtra("OBJECT");

6、传递对象集合数据

6.1、 首先需要将传递的对象的类进行序列化,也就是实现Serializable接口

package com.casic.intelligentmine.entity;

import java.io.Serializable;

/**
*
@author Administrator
*
@projectLargeScreen
*
@packagecom.casic.intelligentmine.entity
*
@date2020/5/30 13:59
*
@brief:
*/
public class Dog implements Serializable {
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

6.2、传递对象集合数据

Intent intent2 = new Intent(SelectActivity.this,FuneralInformationTVActivity.class);
ArrayList<Dog> dogs = new ArrayList<>();
Dog dog = new Dog();
dog.setName("小黄");
dogs.add(dog);
intent2.putExtra("OBJECT_LIST",dogs);
startActivity(intent2);

6.3、获取对象集合数据

Intent intent = this.getIntent();
ArrayList<Dog> dogs = (ArrayList<Dog>) intent.getSerializableExtra("OBJECT");

更多参见: https://www.cnblogs.com/stars-one/p/8270667.html

如果觉得文章有帮助到你,可以扫描以下二维码
   请本文作者 喝一杯
pay_weixin pay_weixin

发表评论

电子邮件地址不会被公开。 必填项已用*标注