有时候我们的app需要保存一些变量值以供程序在任何地方都能调用,因此会用到全局变量的保存方法。这里介绍两种方法供大家参考。
1:使用application来保存全局变量
1.1 定义一个类AppContext继承自Application
package com.example.demo_001.app;
import java.util.HashMap;
import java.util.Map;
import com.example.demo_001.User;
import android.app.Application;
/**
* 创建时间:2015-8-25 下午3:09:27
* 项目名称:Demo_001
* @author 许助云
* @version 1.0
* @since JDK 1.6.0_21
* 文件名称:AppContext.java
* 类说明:
*/
public class AppContext extends Application {
private String b; //保存字符串
private User user; //保存User实体对象
private Map innerMap = new HashMap(); //保存Map类型的数据
public void onCreate(){
//初始化字符串
b = "arthinking";
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Map getInnerMap() {
return innerMap;
}
public void setInnerMap(Map innerMap) {
this.innerMap = innerMap;
}
}
<span style="color:#cc0000;">
</span>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
<strong><span style="color:#cc0000;"> android:name="com.example.demo_001.app.AppContext"</span></strong>
android:theme="@style/AppTheme" >
<activity
android:name="com.example.demo_001.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
1.3 在程序中给全局变量赋值以及取值
<span style="color:#cc0000;"> </span>@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//赋值
final AppContext app = (AppContext )getApplication();
//给字符串赋值
app.setB("hello,world");
//给User对象赋值
User user = new User();
user.setAge(25);
user.setName("arthinking");
app.setUser(user);
//给Map对象赋值
app.addParam("company", "alibaba");
//取值
String str = app.getB();
User user2 = app.getUser();
String company = (String) app.getParam("company");
}<span style="color:#cc0000;">
</span>
2.1定义一个类
public class Data{
private static String a ="feiyangxiaomi";
public static String getA() {
return a;
}
public static void setA(String a) {
Data.a = a;
}
}
2.2 取值和赋值
调用相应的set和get方法即可。
两种方法测试均通过,个人建议用第一种方式。