Android中的全局变量

       上篇文章提到了一点全局变量这个概念,那里面没具体说,但是有时候用起来,确实能起到意想不到的效果,所以,我这里就具体说说这个怎么做到的。

       首先说说我们一般什么时候用全局变量。上一篇文章里遇到的问题是这样的,我在一个activity里面有一个变量,但是我们不是通过bundle传递给另一个activity,因为不是从这个activity直接跳转到另一个activity,可能中间经历了几个activity的跳转,我们总不能一次一次的bundle的传吧。因此,我们就想,能不能有一个“空间”把我们某个activity的变量保存了,在其他的任何一个activity中,我们都能通过访问这个“空间”,把保存的数据读出来,这类似于全局变量。

       那怎么实现全局变量呢?

       Android中的Application就是这样的“空间”。我们把全局变量申明在Application中,然后我们实现一个自己的类去继承Application,在这个类中,我们要实现设置这个全局变量的方法和获取这个全局变量的方法。有了这两个方法,我们就可以在给全局变量赋值的activity中调运设置全局变量的方法把全局变量的值设置了;在我们需要用到这个全局变量的activity里面调运获取全局变量的方法来获取这个值,这样就可以了。

       我这里简单的把我项目中用到的全局变量的类代码贴出来。

public class MyApp extends Application {

	private String correct13 = "0";
	private String correct25 = "0";
	private String correct48 = "0";
	private String correct65 = "0";
	private BluetoothService mChatService = null;
	
	public String[] getcorrect(){
		String[] str = new String[5];
		str[0] = correct13;
		str[1] = correct25;
		str[3] = correct48;
		str[4] = correct65;
		return str;
	};
	
	public void setcorrect(String[] str){
		this.correct13 = str[0];
		this.correct25 = str[1];
		this.correct48 = str[3];
		this.correct65 = str[4];
	}
	
	public BluetoothService getservice(){
		return mChatService;
	}
	
	public void setservice(BluetoothService service){
		this.mChatService = service;
	}
	

	
}

        第一个和第二个方法就是简单的字符串数组全局变量,第一个是设置方法,第二个是获取方法。第三个和第四个是蓝牙部分,从这里也可以看出来,全局变量也可以是某个类的实例,不仅仅是常规的变量类型。

       设置全局变量值的时候,要先用我们这个myApp类去实例化一个对象,然后引用这个set方法;获取全局变量值的时候,也要先实例化一个对象,然后引用get这个方法。简单的给出代码就类似这样。

private String[] str;
MyApp app = (MyApp)getApplicationContext();
app.setcorrect(str);


private static String[] correctstr ;
MyApp app = (MyApp)getApplicationContext();
correctstr = new String[5];
System.arraycopy(app.getcorrect(),0,correctstr,0,5);




发布了37 篇原创文章 · 获赞 14 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章