使用全局变量简单保存重复使用的值

   在做安卓项目的过程中总会有需要跨一个或者n个activity / fragment 等调用数据的情况,虽然通过传值来进行页面跳转可以解决问题,但是当需要长期使用变量或者跨多个界面调用的时候,传值调用就会显得十分麻烦以及臃肿。如何解决这样的问题呢,我们可以用一个简单的全局变量,让整个安卓项目可以随时访问随时获取相关数据。

Java代码实现

  首先我们需要新建一个用于储存全局变量的类,并且将这个类继承application。例如:public class AppContent extends Application然后在这个类中创建一些我们所要使用到的全局变量,并创建相应的getter和setter方法,将整个类封装起来。

具体代码例如:

public class AppContent extends Application {
    private String sex;
    private String province;
    private String city;
    private String invite_key;

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getInvite_key() {
        return invite_key;
    }

    public void setInvite_key(String invite_key) {
        this.invite_key = invite_key;
    }
}

AndroidManifest相关属性更改

  在创建完我们所需要的全局变量类后,我们要修改AndroidManifest的相关属性让他可以让整个安卓项目的java文件都可以访问到,成为真正的全局变量类。我们只需要在AndroidManifest的application标签中添加一条**android:name={.全局变量类名}**即可,例如android:name=".Utils.AppContent"

全局变量的调用

  全局变量类的使用方法很简单,我们只需要在每个需要调用变量的java类界面创建完成后声明一个全局变量类,并给他赋值为application即可调用我们所需要的全局变量啦~

  声明方法例如AppContent app = (AppContent) getApplication();值得注意的是这里一定要加上一个强制类型转化,不然在编译的时候可能会报错!调用的时候就直接调用类内的getter和setter方法即可获取和设置全局变量了!


  这个简单的方法,解决了我很多关于界面传值的问题,虽然可能会导致数据不安全的问题,但是对于记不住活动间传值、碎片间传值、活动传值给碎片、碎片传值给活动等等复杂的传值方法的我而言,简直就是好用到了极点呀!


初めて会ったの日から 僕の心の全てを奪った