Android开发中activity中传递数据的四种方式

版权声明:转载转载本博客文章必须声明出处,否则将追究其法律责任。 https://blog.csdn.net/vvcbvv/article/details/88040331

通过intent方式传递

(1)传递字符串等

发送端activity
发送端activity
接收端activity
在这里插入图片描述

(2)传递一个对象法1(Serializable是java中自带的方法数据存在内存中)

传递activity中的代码,并且传递的对象必须接上Serializable这个接口如第二个图
在这里插入图片描述
在这里插入图片描述接收activity代码
在这里插入图片描述

(3)传递一个对象法2(Serializable是android的方法数据存在运行内存中)
这个方法比较麻烦在需要用到的这个对象中必须写底层代码


public class Obj2 implements Parcelable{
	private String name;
	private String age;
	
	public void setAge(String age) {
		this.age = age;
	}
	
	public String getAge() {
		return age;
	}
	
	public String getName() {
		return name;
	}

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

	@Override
	public int describeContents() {
		return 0;
	}
	
	public static Parcelable.Creator<Obj2> CREATOR = new Creator<Obj2>() {

		@Override
		public Obj2 createFromParcel(Parcel source) { //写出值
			Obj2 obj2 = new Obj2();
			obj2.setName(source.readString()); //在写入值过程中先写入了name后写了age
												//所以在写出值这个也要遵循这个顺序
			obj2.setAge(source.readString());
			return obj2;
		}

		@Override
		public Obj2[] newArray(int size) {
			// TODO Auto-generated method stub
			return null;
		}
	}; 
	@Override
	public void writeToParcel(Parcel dest, int flags) {//写入值
		dest.writeString(name);
		dest.writeString(age);
	}

}

传入数据的activity和第一种方法一致
在这里插入图片描述
传出数据也是一致的
在这里插入图片描述

通过静态变量传递数据

单独设置一个类放静态变量
在这里插入图片描述
在传入数据的activity中将带有数据的对象传给这个静态变量,之后取出即可。
在这里插入图片描述
值得注意的是必须在这个取出数据的activity中将这个静态变量中的数据清空
在这里插入图片描述

通过全局对象传递数据

首先须要将你要传递的对象继承application
在这里插入图片描述在数据数据的activity中获取对象
在这里插入图片描述
同样,在数据接收端也要获取对象
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/vvcbvv/article/details/88040331