在activity之间传递数据

一、简介

在activity之间传递数据_bundle

 

二、通过intent传递数据

1、在需要传数据的界面调用

intent.putExtra("data1", "我是fry");方法

//前面是键,后面是值,这个是string

2、在需要接受数据的界面调用bundle获取传递过来的数据即可

Bundle bundle = getIntent().getExtras();

String data1=bundle.getString("data1");

如果是string就getString(),int就getString(),什么数据类型的方法都有

3、实例

需要传数据的界面调用

intent.putExtra("data1", "我是fry");

需要接受数据的界面

Bundle bundle = getIntent().getExtras();

String data1=bundle.getString("data1");

data1里面的内容就是:"我是fry"

 

三、实例

结果图

在activity之间传递数据_activity_02

在activity之间传递数据_bundle_03

原理:

在MainActivity页面创建数据,然后用intent.putExtra方法将数据传递给Activity01页面

代码

activityDataSend.MainActivity



1 package activityDataSend;
2
3
4
5
6
7 import com.example.activityDataSend.R;
8
9 import android.app.Activity;
10 import android.content.Intent;
11 import android.content.Loader;
12 import android.os.Bundle;
13 import android.view.View;
14 import android.view.View.OnClickListener;
15 import android.widget.Button;
16
17
18
19 public class MainActivity extends Activity{
20 private Button btn_openActivty;//创建一个button对象
21 protected void onCreate(Bundle savedInstanceState) {
22 super.onCreate(savedInstanceState);//父类操作
23 setContentView(R.layout.activity_main);//引入名为activity_main的界面
24 btn_openActivty=(Button) findViewById(R.id.btn_openActivity);//找id为btn_openActivity的button
25 btn_openActivty.setOnClickListener(new OnClickListener() {//设置button点击监听
26
27 @Override
28 public void onClick(View v) {//onclick事件
29 // TODO Auto-generated method stub
30 Intent intent=new Intent();//初始化intent
31 intent.setClass(MainActivity.this,Activity01.class);//连接
32 //下面这句话用于intent在activity之间传输data
33 intent.putExtra("data1", "我是fry");//前面是键,后面是值,这个是string
34 intent.putExtra("data2", 0.2);//这个是double
35 //传递对象,serializable序列化方式
36 testClass1_serialize class1=new testClass1_serialize("fry1",21);
37 intent.putExtra("data3_obj", class1);
38
39 //传递对象,parcelable序列化方式
40 testClass2_parcelable class2=new testClass2_parcelable("fry2",22);
41 intent.putExtra("data4_obj", class2);
42
43 startActivity(intent);//打开activity
44 }
45 });
46 }
47 }


activityDataSend.Activity01



1 package activityDataSend;
2
3
4
5 import com.example.activityDataSend.R;
6
7 import android.app.Activity;
8 import android.os.Bundle;
9 import android.util.Log;
10 import android.widget.TextClock;
11 import android.widget.TextView;
12
13 public class Activity01 extends Activity{
14 private TextView textView_ans;
15 @Override
16 protected void onCreate(Bundle savedInstanceState) {
17 // TODO Auto-generated method stub
18 super.onCreate(savedInstanceState);
19 setContentView(R.layout.activity01);
20
21 textView_ans=(TextView) findViewById(R.id.textView_ans);
22 Bundle bundle = getIntent().getExtras();
23 String data1=bundle.getString("data1");
24 double data2=bundle.getDouble("data2");
25 testClass1_serialize data3_obj=(testClass1_serialize) bundle.get("data3_obj");
26 testClass2_parcelable data4_obj=(testClass2_parcelable) bundle.get("data4_obj");
27
28 Log.d("MainActivity",bundle.get("data3_obj")+"\n"+bundle.get("data4_obj"));
29 System.out.println(bundle.get("data3_obj")+"\n"+bundle.get("data4_obj"));
30
31 textView_ans.setText("data1: "+data1+"\ndata2: "+data2+"\ndata3_obj: "+data3_obj+"\ndata4_obj: "+data4_obj);
32 //textView_ans.setText("data1: "+data1+"\ndata2: "+data2+"\ndata4_obj: "+data4_obj);
33 }
34 }
Serializable序列化方式


activityDataSend.testClass1_serialize



1 package activityDataSend;
2
3 import java.io.Serializable;
4
5 public class testClass1_serialize implements Serializable{
6 private String name;
7 private int age;
8 public String getName() {
9 return name;
10 }
11 public void setName(String name) {
12 this.name = name;
13 }
14 public int getAge() {
15 return age;
16 }
17 public void setAge(int age) {
18 this.age = age;
19 }
20 public testClass1_serialize(String name, int age) {
21 super();
22 this.name = name;
23 this.age = age;
24 }
25 public testClass1_serialize() {
26 super();
27 }
28 @Override
29 public String toString() {
30 return "testClass1_serialize [name=" + name + ", age=" + age + "]";
31 }
32
33 }
Parcelable序列化方式
序列化差不多要自己写
反序列化也要自己写


activityDataSend.testClass2_parcelable



1 package activityDataSend;
2
3 import android.os.Parcel;
4 import android.os.Parcelable;
5
6 /*
7 * Parcelable序列化方式
8 * 序列化差不多要自己写
9 * 反序列化也要自己写
10 */
11 public class testClass2_parcelable implements Parcelable{
12 private String name;
13 private int age;
14 public String getName() {
15 return name;
16 }
17 public void setName(String name) {
18 this.name = name;
19 }
20 public int getAge() {
21 return age;
22 }
23 public void setAge(int age) {
24 this.age = age;
25 }
26 public testClass2_parcelable() {
27 super();
28 }
29 public testClass2_parcelable(String name, int age) {
30 super();
31 this.name = name;
32 this.age = age;
33 }
34
35 @Override
36 public String toString() {
37 return "testClass2_parcelable [name=" + name + ", age=" + age + "]";
38 }
39 @Override
40 public int describeContents() {
41 // TODO Auto-generated method stub
42 return 0;
43 }
44 /*
45 * 序列化
46 * (non-Javadoc)
47 * @see android.os.Parcelable#writeToParcel(android.os.Parcel, int)
48 */
49 @Override
50 public void writeToParcel(Parcel dest, int flags) {//序列化
51 // TODO Auto-generated method stub
52 dest.writeString(name);
53 dest.writeInt(age);
54 }
55 /*
56 * 反序列化要自己写
57 */
58 public static Parcelable.Creator<testClass2_parcelable> CREATOR=new Creator<testClass2_parcelable>() {
59
60 @Override
61 public testClass2_parcelable[] newArray(int size) {
62 // TODO Auto-generated method stub
63 return null;
64 }
65 /*
66 * 反序列化
67 * (non-Javadoc)
68 * @see android.os.Parcelable.Creator#createFromParcel(android.os.Parcel)
69 */
70 @Override
71 public testClass2_parcelable createFromParcel(Parcel source) {//反序列化
72 // TODO Auto-generated method stub
73 testClass2_parcelable class2=new testClass2_parcelable();
74 class2.setName(source.readString());
75 class2.setAge(source.readInt());
76 return class2;
77 }
78 };
79 }


 


我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: ​​fanrenyi.com​​;有各种前端、后端、算法、大数据、人工智能等课程。

​版权申明:欢迎转载,但请注明出处​

一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。

博主25岁,前端后端算法大数据人工智能都有兴趣。