zoukankan      html  css  js  c++  java
  • 在activity之间通过静态变量传递数据

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

    一、简介

    主要作用:解决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的对象

    三、代码实例

    结果图

    代码

    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 }
  • 相关阅读:
    usaco PROB Checker Challenge 搜索
    usaco Superprime Rib 搜索
    hdu_1056_HangOver_201311071354
    hdu_1049_Climbing Worm_201311061331
    hdu_1048_The Hardest Problem Ever_201311052052
    hdu_1041_Computer Transformation_201311051648
    hdu_1039_Easier Done Than Said_201311051511
    hdu_1038_Biker's Trip Odometer_201311021643
    hdu_1037_Keep on Truckin'_201311021600
    hdu_1036_Average is not Fast Enough_201311021335
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7266000.html
Copyright © 2011-2022 走看看