您的位置:首页 > 移动开发 > Android开发

在Android程序中保存全局变量

2015-08-25 15:52 399 查看
有时候我们的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>


1.2 在manifest.xml中声明application

<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.使用普通类保存全局变量


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方法即可。

两种方法测试均通过,个人建议用第一种方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: