android 全局变量 回收,转:Android设置全局变量

本文介绍了在Android中实现全局变量的两种方法:1) 继承Application类创建自定义Application,通过getApplication()获取;2) 使用静态类保存静态变量。详细展示了在MainActivity和secondActivity中如何设置和获取这些全局变量,以及它们在不同Activity间切换时的状态保持。
摘要由CSDN通过智能技术生成

声明:本文转自feiyangxiaomi的博客:http://blog.csdn.net/feiyangxiaomi/article/details/9966215仅供学习使用,转载请指明原作者。

文中介绍了两种在Android中使用全局变量的方法,其中第一中是android推荐的,但是只能用于继承Activity类使用,第二种是java中设置静态变量和方法适用于所有类。

1.使用application来保存全局变量

1.1定义Data类继承Application Data.class

importandroid.app.Application;public class Data extendsApplication{privateString b;publicString getB(){return this.b;

}public voidsetB(String c){this.b=c;

}

@Overridepublic voidonCreate(){

b= "hello";super.onCreate();

}

}

1.2在manifest.xml中声明application

android:name="com.animator1.Data" >

1.3创建两个Activity

MainActivity.class

public class MainActivity extendsActivity {

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button btn= (Button) this.findViewById(R.id.button1);final TextView txtview = (TextView) this.findViewById(R.id.main);final Data app =(Data)getApplication();

txtview.setText(app.getB());

btn.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub

app.setB("no_hello");

txtview.setText(app.getB());

Intent intent= new Intent(MainActivity.this, secondActivity.class);

startActivity(intent);

}

});

}

}

secondActivity.class

public class secondActivity extendsActivity{

@Overrideprotected voidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);

setContentView(R.layout.second);

Button btn= (Button) this.findViewById(R.id.button2);final TextView txtview = (TextView) this.findViewById(R.id.second);final Data app =(Data)getApplication();

txtview.setText(app.getB());

btn.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub

app.setB("hello");

txtview.setText(app.getB());

Intent intent= new Intent(secondActivity.this, MainActivity.class);

startActivity(intent);

}

});

}

}

1.4运行程序

4828631ee1f514b6aa342d40eb2a371a.png    

28238a91c46012f922b503ade0b57484.png

说明:程序首先进入MainActivity.class中,获取Data中变量b的值,显示图1所示的界面hello,单击button后app.setB("no_hello"), 修改变量b的值。

跳转到secondActivity.class,获取Data中变量b的值,显示图2所示的界面no_hello,单击button后app.setB("hello"), 修改变量b的值。

跳转回MainActivity.class……  循环

2.使用普通的类Data.class来保存全局变量

方法和上面差不多。

1.1 定义Data.class

public classData{private static String a ="feiyangxiaomi";public staticString getA() {returna;

}public static voidsetA(String a) {

Data.a=a;

}

}

1.2创建两个Activity

MainActivity.class

public class MainActivity extendsActivity {

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button btn= (Button) this.findViewById(R.id.button1);final TextView txtview = (TextView) this.findViewById(R.id.main);

txtview.setText(Data.getA());

btn.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub

Data.setA("no_feiyangxiaomi");

Intent intent= new Intent(MainActivity.this, secondActivity.class);

startActivity(intent);

}

});

}

}

secondActivity.class

[java] view plaincopy

public class secondActivity extendsActivity{

@Overrideprotected voidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);

setContentView(R.layout.second);

Button btn= (Button) this.findViewById(R.id.button2);final TextView txtview = (TextView) this.findViewById(R.id.second);

txtview.setText(Data.getA());

btn.setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub

Data.setA("feiyangxiaomi");

Intent intent= new Intent(secondActivity.this, MainActivity.class);

startActivity(intent);

}

});

}

}

1.3运行程序

c6a921b4ab930fbe86a09f7ce88d4a49.png                      

b9a44bc8e0062cb0cc09586b7fa9a8fe.png

说明:程序首先进入MainActivity.class中,获取Data中变量b的值,显示图1所示的界面feiyangxiaomi,单击button后app.setB("no_feiyangxiaomi"), 修改变量b的值。

跳转到secondActivity.class,获取Data中变量b的值,显示图2所示的界面no_feiyangxiaomi,单击button后app.setB("feiyangxiaomi"), 修改变量b的值。

跳转回MainActivity.class……  循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值