`
01jiangwei01
  • 浏览: 533082 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

安卓课程一 android使用全局变量传递数据

 
阅读更多

  android中Application是用来保存全局变量的,在package创建的时候就存在了,到所有的activity都被destroy掉之后才会被释放掉。所以当我们需要全局变量的时候只要在application中去实现,通过调用Context的getApplicationContext或者Activity的getApplication方法来获得一个Application对象,就可以设置或读取全局变量的值。

  启动Application时,系统会创建一个PID,即进程ID,所有的Activity就会在此进程上运行。那么我们在Application创建的时候初始化全局变量,同一个应用的所有Activity都可以取到这些全局变量的值,换句话说,我们在某一个Activity中改变了这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。

实例演试:如果把输入里的内容设置为全局变量,那么有下面两种情况。



 

具体实现方法如下:

一. 新建共享的全局变量

新建一个共享变量的类WirelessApp,需要继承Application

package com.wirelessqa.testintent;
import android.app.Application;
/**

 * 继承application,设置全局变量

 * @author bixiaopeng 2013-2-18 上午11:32:19

 */

public class WirelessApp extends Application {

private String username;


public String getUsername() {
returnusername;
}


public void setUsername(String username) {
this.username = username;
}


}

 

二.配置AndroidMainifest.xml 

在AndroidMainifest.xml中声明一下全局变量的类,这时Android就会建立一个全局可用的实例

在Application属性中设置android:name=".WirelessApp"

三.调用全局变量

可以在其它任何地方使用Content.getApplicationConext()来获取这个实例,再来获取全局变量

 

package com.wirelessqa.testintent;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;
public class MainActivity extends Activity {
private EditText edit = null;
private Button button = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit = (EditText)findViewById(R.id.edit);
button = (Button)findViewById(R.id.btn_submit);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
String result = edit.getText().toString();
//获得应用程序实例
WirelessApp app = (WirelessApp)getApplicationContext();
//给全局变量赋值
app.setUsername(result);
//启动另一个activity
Intent intent = new Intent(MainActivity.this, ResultActivity.class);
startActivity(intent);
}
});
}
}

 

 四.调用全局变量的值

 

 

package com.wirelessqa.testintent;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

/**
 * 显示结果的Activity
 * 
 * @author bixiaopeng 2013-2-18 上午11:29:50
 */
public class ResultActivity extends Activity {

    private TextView text = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        //获得应用程序实例
        WirelessApp app = (WirelessApp) getApplicationContext();
        String result = app.getUsername();//取值
        text = (TextView) findViewById(R.id.txt_result);
        text.setText(result);
    }

}

 

  • 大小: 66.3 KB
分享到:
评论

相关推荐

    Android通过全局变量传递数据

    在Activity之间数据传递中还有一种比较实用的方式 就是全局对象 实用J2EE的读者来说都知道Java Web的四个作用域 这四个作用域从小到大分别是Page Request Session和Application 其中Application域在应用程序的任何...

    通过全局对象传递数据

    android中通过全局变量传递数据,对应博客请参考http://blog.csdn.net/seascoop/article/details/44885903

    android使用意图传递数据

    这是一个ppt文档,在里面详细的帮我们介绍了在Activity之间传递数据,通过全局变量传递数据。

    详解Android中Application设置全局变量以及传值

    Application设置全局变量以及传值 /** * 重写Application,主要重写里面的onCreate方法,就是创建的时候, * 我们让它初始化一些值,前段时间在javaeye里面看到过一个例子,与此相似, * 我做了些改进。听说外国...

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

    4种最常用的Intent传递方式,这4种方式如下: 1、通过Intent传递数据 2、通过静态变量传递数据 3、通过剪切板传递数据 4、通过全局变量传递数据

    1.Android入门介绍.zip

    1.1 android系统介绍,1.2 android系统框架的介绍,1.3 如何搭建android开发环境,1.4 android生命周期的介绍,1.5 android使用全局变量传递数据,1.6 android使用剪切板传递数据,1.7 意图传递数据的第一种方式,...

    老罗android视频开发源码和ppt经典

    1.5 android使用全局变量传递数据 1.6 android使用剪切板传递数据 1.7 意图传递数据的第一种方式 1.8 android使用静态变量传递数据 1.9 意图返回结果 二、Android常用布局介绍 2.1 android常用布局属性的介绍 2.2 ...

    用handler在两个activity之间传递数据

    资源包括如何在一个activity A里激活另一个activity B。 然后在两个activity之间用handler传输数据。在activity A里定义全局变量handler,用sendMessage来发数据,在handler里数据以消息队列的方式发送。

    在不同Activity之间传递数据的四种常用方法

    在Android中传递数据的方法非常多,本次介绍4中比较常用的数据传递方法: 1.通过Intent传递数据 2.通过静态变量(static)传递数据 3.通过剪贴板(Clipboard)传递数据 4.通过全局对象传递数据 在...

    activity间数据的传递列表显示

    首先是Intent自定义数据的传送,之后银行账号的输入格式的控制,之后界面销毁时数据的返回,将跟新了的数据返回给上一层的activity

    Android开发 8.0及以上调用相机/相册,并根据Uri获取图像绝对路径,并进行文件上传

    之所以要用到provider,是因为从Android7.0开始,就不允许在 App 间,使用 file:// 的方式,传递一个 File ,否则就会抛出异常,而provider的作用恰好就是用过 content://的模式替换掉 file://,看上去只是换了个...

    Android4.0入门之参数传递4种方式

    Android4.0入门之参数传递4种方式: 1.通过Intent方式传参 2.通过系统剪切板传参、需要对象转化成Base64的字符串进行传递 3.通过Application全局对象传值 4.通过Activity中的静态变量传参

    Android intent之间复杂参数传递方法详解

    本文详细讲述了Android intent之间复杂参数传递方法。分享给大家供大家参考...类型和全局变量等等的需求。本文就是介绍怎么传递这几种类型的参数。 一、传递List和List 以下以传递List为例,发送List语法为: intent.

    Android 中两个Activity 之间的传值问题

    但是我们知道,在Java中全局静态变量(java中没有全局变量这一个概念,但是java提供了public static关键字来实现一些类似于全局变量的关键字)都是在程序加载时就放人到内存中,它是存储在方法区里的。如果程序不...

    精通ANDROID 3(中文版)1/2

    23.1.1 探索Android全局搜索  23.1.2 为全局搜索启用建议提供程序  23.2 活动与搜索键交互  23.2.1 常规活动上的搜索键行为  23.2.2 禁用了搜索的活动的行为  23.2.3 通过菜单显式调用搜索  23.2.4 ...

    精通Android 3 (中文版)2/2

    23.1.1 探索Android全局搜索  23.1.2 为全局搜索启用建议提供程序  23.2 活动与搜索键交互  23.2.1 常规活动上的搜索键行为  23.2.2 禁用了搜索的活动的行为  23.2.3 通过菜单显式调用搜索  23.2.4 ...

    NDKC调用Java函数传参或获取变量

    C/C++获取Java的全局变量: 获取int类型和String类型变量并重新赋值: https://blog.csdn.net/niuba123456/article/details/80990063 获取静态变量: https://blog.csdn.net/niuba123456/article/details/80990237

    绝对给力的源码,在线音乐播放器完整项目

    因为里面应用了网络通讯,json解析,全局mediaservice,自定义View组件,自定义Adapter,application全局缓存,变量等等,所有要在项目中考虑到的优化问题,现在论坛代码片段很多但像这样一套完整代码绝对不多。...

Global site tag (gtag.js) - Google Analytics