Android数据传递全局变量的使用方法

【Android数据传递全局变量的使用方法】黄沙百战穿金甲,不破楼兰终不还。这篇文章主要讲述Android数据传递全局变量的使用方法相关的知识,希望能为你提供帮助。
【android数据传递】全局变量的使用方法

Android数据传递全局变量的使用方法

文章图片
  印第安的老乔克  2013-02-18 21:36:14android中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);
        }

}


                  源码下载:http://pan.baidu.com/share/link?shareid=266061& uk=436271564

原文链接:http://www.wirelessqa.com/?p=192

null


    推荐阅读