【Android数据传递】全局变量的使用方法(附源码)
来源:互联网 发布:兄弟钻攻中心编程 编辑:程序博客网 时间:2024/06/06 10:51
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;@Overrideprotected 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() {@Overridepublic void onClick(View v) {String result = edit.getText().toString();//获得应用程序实例WirelessApp app = (WirelessApp)getApplicationContext();//给全局变量赋值app.setUsername(result);//启动另一个activityIntent 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); }}
源码下载:http://pan.baidu.com/share/link?shareid=266061&uk=436271564
- 【Android数据传递】全局变量的使用方法(附源码)
- Android通过全局变量传递数据
- [Android]使用全局变量传递数据
- 【Android数据传递】Intent传递List和Object和List<Object>(附源码)
- 【Android数据传递】Intent传递List和Object和List<Object>(附源码)
- 【Android数据传递】Intent传递List和Object和List<Object>(附源码)
- 【Android数据传递】Intent传递List和Object和List<Object>(附源码)
- 【Android数据传递】Intent传递List和Object和List<Object>(附源码)
- 【Android数据传递】Intent传递List和Object和List<Object>(附源码)(转)
- 【Android数据传递】Intent传递List和Object和List<Object>(附源码)
- 【Android数据传递】Intent传递List和Object和List<Object>(附源码)
- Android Toast几种使用方法:附源码
- Android使用意图传递数据之全局变量
- android传递数据的几种方式之利用全局变量进行传递
- android 使用Intent传递数据之全局变量传递
- android使用意图传递数据之全局变量传递
- 使用全局变量传递数据
- Android 用application保存全局变量,关于Android中传递数据的一些讨论
- 学习Activity保存状态的onSaveInstanceState方法
- 多个菜单展开和折叠
- java辨析
- Codeforces Round #144 (Div. 1), problem: (B) Table DP 组合数学
- 微软的Visual Studio 2010 SP1的Web标准更新
- 【Android数据传递】全局变量的使用方法(附源码)
- UVa 10600 ACM contest and Blackout( 次小生成树)
- 汇编中的管道操作方法
- 云计算特点
- JAVA语言编码规范
- c语言中的#ifndef、#def、#endif等宏是什么意思 .
- Codeforces Round #138 (Div. 1), problem: (B) Two Strings
- static 初始化原理
- Ubuntu 12.10解决flash白屏的问题