在activity之间通过静态变量传递数据

一、简介

在activity之间通过静态变量传递数据_bundle

主要作用:解决intent不能传递非序列化的对象

评价:简单方便,但是容易发生内存泄露,所以要及时回收内存

 

二、具体操作

1、在传输数据的页面弄好数据,传递给接收数据的页面

Obj1 obj=new Obj1("fry",22);

Activity01.obj=obj;

2、在接收数据的页面显示数据

输出obj即可

3、具体代码

传输数据的页面

Intent intent=new Intent();//初始化intent

intent.setClass(MainActivity.this,Activity01.class);//连接

Obj1 obj=new Obj1("fry",22);

Activity01.obj=obj;

startActivity(intent);//打开activity

接收数据的页面

public static Obj1 obj;

setContentView(R.layout.activity01);

textView_ans=(TextView) findViewById(R.id.textView_ans);

textView_ans.setText("obj: "+obj);

 4、回收内存

在接收数据的页面

protected void onDestroy() {

  super.onDestroy();

  obj=null;

}

java会自动回收指向null的对象

 

三、代码实例

结果图

在activity之间通过静态变量传递数据_人工智能_02

在activity之间通过静态变量传递数据_android_03

代码

activityStaticDataSend.MainActivity



1 package activityStaticDataSend;
2
3
4
5
6
7
8 import com.example.activityStaticDataSend.R;
9
10 import android.app.Activity;
11 import android.content.Intent;
12 import android.content.Loader;
13 import android.os.Bundle;
14 import android.view.View;
15 import android.view.View.OnClickListener;
16 import android.widget.Button;
17
18
19
20 public class MainActivity extends Activity{
21 private Button btn_openActivty;//创建一个button对象
22 protected void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);//父类操作
24 setContentView(R.layout.activity_main);//引入名为activity_main的界面
25 btn_openActivty=(Button) findViewById(R.id.btn_openActivity);//找id为btn_openActivity的button
26 btn_openActivty.setOnClickListener(new OnClickListener() {//设置button点击监听
27
28 @Override
29 public void onClick(View v) {//onclick事件
30 // TODO Auto-generated method stub
31 Intent intent=new Intent();//初始化intent
32 intent.setClass(MainActivity.this,Activity01.class);//连接
33 Obj1 obj=new Obj1("fry",22);
34 Activity01.obj=obj;
35 startActivity(intent);//打开activity
36 }
37 });
38 }
39 }


activityStaticDataSend.Activity01



1 package activityStaticDataSend;
2
3
4
5
6 import com.example.activityStaticDataSend.R;
7
8 import android.app.Activity;
9 import android.os.Bundle;
10 import android.util.Log;
11 import android.widget.TextClock;
12 import android.widget.TextView;
13
14 public class Activity01 extends Activity{
15 public static Obj1 obj;
16 private TextView textView_ans;
17 @Override
18 protected void onCreate(Bundle savedInstanceState) {
19 // TODO Auto-generated method stub
20 super.onCreate(savedInstanceState);
21 setContentView(R.layout.activity01);
22 textView_ans=(TextView) findViewById(R.id.textView_ans);
23 textView_ans.setText("obj: "+obj);
24 }
25 @Override
26 protected void onDestroy() {
27 // TODO Auto-generated method stub
28 super.onDestroy();
29 obj=null;
30 }
31 }


 


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

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

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

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