设为首页 加入收藏

TOP

activity之间通过全局变量传递数据(一)
2017-10-11 17:00:03 】 浏览:4979
Tags:activity 之间 通过 全局 变量 传递 数据

activity之间通过全局变量传递数据

一、简介

Application域中的onCreate方法是Android程序的入口,Android程序运行的时候就自动加载Application的对象,感觉Main方法应该是封装在这个里面的。 

activity中传递数据主要用intent方式和全局变量方式。

 

二、使用步骤

1、新建MyApplication类继承Application类

public class MyApplication extends Application

继承之后MyApplication类就是全局的了

2、在传输数据页面调用MyApplication类并生成数据

MyApplication app=(MyApplication) getApplication();

app.setName("fry");
app.setAge(22);

3、在接收数据页面调用MyApplication类并输出数据

MyApplication app=(MyApplication) getApplication();

tv_answer.setText("app:" + app );

4、在AndroidManifest.xml配置文件中添加MyApplication类的Android启动配置

android:name="activityGlobelVariable.MyApplication"

5、大功告成

 

三、具体代码实例

代码中进行了两次优化:

一是对MyApplication类实现了单例化模式,便于在没有继承Activity的类里面调用

调用:

MyApplication app = MyApplication.getInstance();

二是对于传输多组数据,使用了HashMap

private HashMap<String, Object> map=new HashMap<String, Object>();

 

结果图:

activityGlobelVariable.MyApplication

  1 package activityGlobelVariable;
  2 
  3 import java.util.HashMap;
  4 
  5 import android.app.Application;
  6 
  7 public class MyApplication extends Application{
  8     
  9     
 10     //也可以用hashMap来代替这些私有变量
 11     private HashMap<String, Object> map=new HashMap<String, Object>();  12             
 13     
 14     private String name;
 15     private int age;
 16     
 17     
 18     
 19     
 20     
 21     public HashMap<String, Object> getMap() {
 22         return map;
 23     }
 24 
 25     public void setMap(HashMap<String, Object> map) {
 26         this.map = map;
 27     }
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 private static MyApplication instance=null; 40 41 public static MyApplication getInstance(){ 42 return instance; 43 }  44     
 45     public String getName() {
 46         return name;
 47     }
 48 
 49 
 50 
 51     public void setName(String name) {
 52         this.name = name;
 53     }
 54     
 55     
 56 
 57 
 58     public int getAge() {
 59         return age;
 60     }
 61 
 62 
 63 
 64     public void setAge(int age) {
 65         this.age = age;
 66     }
 67     
 68     
 69 
 70 
 71     public MyApplication() {
 72         super();
 73     }
 74 
 75 
 76 
 77     public MyApplication(String name, int age) {
 78         super();
 79         this.name = name;
 80         this.age = age;
 81     }
 82 
 83 
 84 
 85     @Override
 86 public void onCreate() { 87 // TODO Auto-generated method stub 88 super.onCreate(); 89 this.instance=this; 90 }  91 
 92     
 93 
 94     
 95 
 96     
 97 
 98     
 99 
100 
101 
102     @Override
103     public String toString() {
104         return "MyApplication [name=" + name + ", age=" + age + "]";
105     }
106     
107     
108     
109     
110 }

activityGlobelVariable.MainActivity

 1 package activityGlobelVariable;
 2 
 3 
 4 
 5 
 6 import com.example.activityGlobelVariable.R;
 7 
 8 import android.app.Activity;
 9 import android.content.Intent;
10 import android.os.Bundle;
11 import android.view.View;
12 import android.view.View.OnClickListener;
13 import android.widget.Button;
14 
15 
16 
17 public class MainActivity extends Activity{
18     private Button btn_openActivty;//创建一个button对象
19     MyApplication app = MyApplication.getInstance(); 20      protected void onCreate(Bundle savedInstanceState) {
21             super.onCreate(savedInstanceState);//父类操作
22             setContentView(R.layout.activity_main);//引入名为activity_main的界面
23             btn_openActivty=(Button) findViewById(R.id.btn_openActivity);//找id为btn_openActivity的button
24             btn_openActivty.setOnClickListener(new OnClickListener() {//设置button点击监听
25                 
26                 @Override
27                 public void onClick(View v) {//
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇从Activity中返回数据 下一篇请求码和结果码

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目