android使用全局变量传递数据_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > android使用全局变量传递数据

android使用全局变量传递数据

 2014/10/23 15:22:35  xiaochao1234  程序员俱乐部  我要评论(0)
  • 摘要:android中Application是用来保存全局变量的,在package创建的时候就存在了,到所有的activity都被destroy掉之后才会被释放掉。所以当我们需要全局变量的时候只要在application中去实现,通过调用Context的getApplicationContext或者Activity的getApplication方法来获得一个Application对象,就可以设置或读取全局变量的值。启动Application时,系统会创建一个PID,即进程ID
  • 标签:android 使用 数据 传递数据 全局

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

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

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



 

具体实现方法如下:

一. 新建共享的全局变量

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

Java代码 javascripts/syntaxhighlighter/clipboard_new.swf" type="application/x-shockwave-flash">ways" /> 收藏代码
  1. package com.wirelessqa.testintent;  
  2. import android.app.Application;  
  3. /** 
  4.  
  5.  * 继承application,设置全局变量 
  6.  
  7.  * @author bixiaopeng 2013-2-18 上午11:32:19 
  8.  
  9.  */  
  10.   
  11. public class WirelessApp extends Application {  
  12.   
  13. private String username;  
  14.   
  15.   
  16. public String getUsername() {  
  17. returnusername;  
  18. }  
  19.   
  20.   
  21. public void setUsername(String username) {  
  22. this.username = username;  
  23. }  
  24.   
  25.   
  26. }  

 

二.配置AndroidMainifest.xml 

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

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

三.调用全局变量

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

 

Java代码 Intent%3B%0A%0Aimport%20android.os.Bundle%3B%0A%0Aimport%20android.view.View%3B%0A%0Aimport%20android.view.View.OnClickListener%3B%0A%0Aimport%20android.widget.Button%3B%0A%0Aimport%20android.widget.EditText%3B%0Apublic%20class%20MainActivity%20extends%20Activity%20%7B%0Aprivate%20EditText%20edit%20%3D%20null%3B%0Aprivate%20Button%20button%20%3D%20null%3B%0A%40Override%0Aprotected%20void%20onCreate(Bundle%20savedInstanceState)%20%7B%0Asuper.onCreate(savedInstanceState)%3B%0AsetContentView(R.layout.activity_main)%3B%0Aedit%20%3D%20(EditText)findViewById(R.id.edit)%3B%0Abutton%20%3D%20(Button)findViewById(R.id.btn_submit)%3B%0Abutton.setOnClickListener(new%20OnClickListener()%20%7B%0A%0A%40Override%0Apublic%20void%20onClick(View%20v)%20%7B%0AString%20result%20%3D%20edit.getText().toString()%3B%0A%2F%2F%E8%8E%B7%E5%BE%97%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%AE%9E%E4%BE%8B%0AWirelessApp%20app%20%3D%20(WirelessApp)getApplicationContext()%3B%0A%2F%2F%E7%BB%99%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC%0Aapp.setUsername(result)%3B%0A%2F%2F%E5%90%AF%E5%8A%A8%E5%8F%A6%E4%B8%80%E4%B8%AAactivity%0AIntent%20intent%20%3D%20new%20Intent(MainActivity.this%2C%20ResultActivity.class)%3B%0AstartActivity(intent)%3B%0A%7D%0A%7D)%3B%0A%7D%0A%7D" /> 收藏代码
  1. package com.wirelessqa.testintent;  
  2.   
  3. import android.app.Activity;  
  4.   
  5. import android.content.Intent;  
  6.   
  7. import android.os.Bundle;  
  8.   
  9. import android.view.View;  
  10.   
  11. import android.view.View.OnClickListener;  
  12.   
  13. import android.widget.Button;  
  14.   
  15. import android.widget.EditText;  
  16. public class MainActivity extends Activity {  
  17. private EditText edit = null;  
  18. private Button button = null;  
  19. @Override  
  20. protected void onCreate(Bundle savedInstanceState) {  
  21. super.onCreate(savedInstanceState);  
  22. setContentView(R.layout.activity_main);  
  23. edit = (EditText)findViewById(R.id.edit);  
  24. button = (Button)findViewById(R.id.btn_submit);  
  25. button.setOnClickListener(new OnClickListener() {  
  26.   
  27. @Override  
  28. public void onClick(View v) {  
  29. String result = edit.getText().toString();  
  30. //获得应用程序实例  
  31. WirelessApp app = (WirelessApp)getApplicationContext();  
  32. //给全局变量赋值  
  33. app.setUsername(result);  
  34. //启动另一个activity  
  35. Intent intent = new Intent(MainActivity.this, ResultActivity.class);  
  36. startActivity(intent);  
  37. }  
  38. });  
  39. }  
  40. }  

 

 四.调用全局变量的值

 

 

Java代码  收藏代码
    1. package com.wirelessqa.testintent;  
    2.   
    3. import android.app.Activity;  
    4. import android.os.Bundle;  
    5. import android.widget.TextView;  
    6.   
    7. /** 
    8.  * 显示结果的Activity 
    9.  *  
    10.  * @author bixiaopeng 2013-2-18 上午11:29:50 
    11.  */  
    12. public class ResultActivity extends Activity {  
    13.   
    14.     private TextView text = null;  
    15.   
    16.     @Override  
    17.     protected void onCreate(Bundle savedInstanceState) {  
    18.         super.onCreate(savedInstanceState);  
    19.         setContentView(R.layout.activity_result);  
    20.         //获得应用程序实例  
    21.         WirelessApp app = (WirelessApp) getApplicationContext();  
    22.         String result = app.getUsername();//取值  
    23.         text = (TextView) findViewById(R.id.txt_result);  
    24.         text.setText(result);  
    25.     }  
    26.   
    27. }  
上一篇: 一个程序员最想些什么 下一篇: 没有下一篇了!
发表评论
用户名: 匿名