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

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

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


android使用全局变量传递数据

具体实现方法如下:

一. 新建共享的全局变量

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

Java代码 收藏代码
  1. packagecom.wirelessqa.testintent;
  2. importandroid.app.Application;
  3. /**
  4. *继承application,设置全局变量
  5. *@authorbixiaopeng2013-2-18上午11:32:19
  6. */
  7. publicclassWirelessAppextendsApplication{
  8. privateStringusername;
  9. publicStringgetUsername(){
  10. returnusername;
  11. }
  12. publicvoidsetUsername(Stringusername){
  13. this.username=username;
  14. }
  15. }

二.配置AndroidMainifest.xml

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

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

三.调用全局变量

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

Java代码 收藏代码
  1. packagecom.wirelessqa.testintent;
  2. importandroid.app.Activity;
  3. importandroid.content.Intent;
  4. importandroid.os.Bundle;
  5. importandroid.view.View;
  6. importandroid.view.View.OnClickListener;
  7. importandroid.widget.Button;
  8. importandroid.widget.EditText;
  9. publicclassMainActivityextendsActivity{
  10. privateEditTextedit=null;
  11. privateButtonbutton=null;
  12. @Override
  13. protectedvoidonCreate(BundlesavedInstanceState){
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. edit=(EditText)findViewById(R.id.edit);
  17. button=(Button)findViewById(R.id.btn_submit);
  18. button.setOnClickListener(newOnClickListener(){
  19. @Override
  20. publicvoidonClick(Viewv){
  21. Stringresult=edit.getText().toString();
  22. //获得应用程序实例
  23. WirelessAppapp=(WirelessApp)getApplicationContext();
  24. //给全局变量赋值
  25. app.setUsername(result);
  26. //启动另一个activity
  27. Intentintent=newIntent(MainActivity.this,ResultActivity.class);
  28. startActivity(intent);
  29. }
  30. });
  31. }
  32. }

四.调用全局变量的值

Java代码 收藏代码
    1. packagecom.wirelessqa.testintent;
    2. importandroid.app.Activity;
    3. importandroid.os.Bundle;
    4. importandroid.widget.TextView;
    5. /**
    6. *显示结果的Activity
    7. *
    8. *@authorbixiaopeng2013-2-18上午11:29:50
    9. */
    10. publicclassResultActivityextendsActivity{
    11. privateTextViewtext=null;
    12. @Override
    13. protectedvoidonCreate(BundlesavedInstanceState){
    14. super.onCreate(savedInstanceState);
    15. setContentView(R.layout.activity_result);
    16. //获得应用程序实例
    17. WirelessAppapp=(WirelessApp)getApplicationContext();
    18. Stringresult=app.getUsername();//取值
    19. text=(TextView)findViewById(R.id.txt_result);
    20. text.setText(result);
    21. }
    22. }

更多相关文章

  1. Android中使用代码控制Wifi及数据连接网络开关
  2. Android WebView中的JavaScript代码使用
  3. Android Animation 高手必读 之一 Tweened Animations 代码实现
  4. 基于Service与ContentProvider的音乐播放实例!
  5. Android相机应用开发实例
  6. 当修改一些代码时,使用什么编译命令可以最有效率

随机推荐

  1. MPAndroidChart~BubbleChart(气泡图) and
  2. Android(安卓)控制闪光灯
  3. Android SDK1.0 Permission 大全访问权限
  4. android使用notifyDataSetChanged()方法,a
  5. Android之生成桌面快捷方式(二)
  6. Android:Android Support Design之TabLay
  7. Android键盘映射
  8. Android 封装自己的工具Jar
  9. Android P 系统启动-System Server启动篇
  10. sdut 2162:The Android University ACM T