有时候我们的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>
<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; } }
调用相应的set和get方法即可。
两种方法测试均通过,个人建议用第一种方式。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/jdfkldjlkjdl/article/details/47977401