Android下使用全局变量

本文介绍了在Android中创建全局变量的两种方法:一是自定义Application类,二是使用静态类。在Application类中,将变量声明为private,并通过公共方法访问。在Manifests.xml中配置应用类。另一种方法是创建一个公共静态类,包含静态变量,这样在应用的不同部分都能保持其值。文章提供了具体的代码示例来展示这两种方法的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android中使用全局变量有两种方法:
一种是自定义一个类继承Application;另一种是定义一个类,将里面的方法和变量全部设置成静态。

首先讲第一种:
1.这个很简单,只需要你将全局变量放到该类中作为成员变量即可,最好设置成private,然后通过方法对其进行设置和提取。注意的是:该类是无法访问到其它类中的变量。

2.在Manifests.xml中的中添加一个android:name=”你定义的类的路径名”
例如:

3.引用该类,这里我定义的是MyApp类:MyApp myApp = (MyApp) getApplication();
具体代码:
MyApp.class

public class MyApp extends Application{
        public String str_public;
        private String str_private;

        public void setStr_private(String str){
                str_private = str;
        }

        public String getStr_private(){
                return str_private;
        }
}

MainActivity.class

MyApp myApp = (MyApp)getApplication();

String str = "this is Main of Private";
myApp.setStr_private(str);
TextView textview = (TextView)findViewById(R.id.text1_private);
textview.setText(myApp.getStr_private() );

myApp.str_public = "this is Main of Public";
TextView textView2 = (TextView)findViewById(R.id.text1_public);
textView2.setText(myApp.str_public );

Inflate.class

MyApp myApp = (MyApp)getApplication();

String str = "this is Inflate of Private";
myApp.setStr_private(str);
TextView textview = (TextView)findViewById(R.id.text2_private);
textview.setText(myApp.getStr_private());

myApp.str_public = "this is Inflate of Public";
TextView textView2 = (TextView)findViewById(R.id.text2_public);
textView2.setText(myApp.str_public );

效果:
这里写图片描述

这里写图片描述

第二种:
定义一个public的类,将里面的变量设为static,那么每当你使用该类时,里面的变量不会重新初始化,而是保留上次使用时所保存的值。
代码如下:

Data.class

public class Data {
    private static String str;

    public static String getStr(){
        return str;
    }

    public static void setStr(String string){
        str = string;
    }
}

MainActivity.class

Data data = new Data();
data.setStr("This is in Main");
TextView textview = (TextView)findViewById(R.id.text1_public);
textview.setText(data.getStr() );

Inflate.class

Data data = new Data();
data.setStr("This is in Inflate");
TextView textview = (TextView)findViewById(R.id.text2_public);
textview.setText(data.getStr()  );

效果:
这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值