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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章