1. 程式人生 > >android中全域性變數的表示 多個activity的資料共享

android中全域性變數的表示 多個activity的資料共享

具體是怎麼實現的  我也不是很懂  我剛學android不到1個月 沒有java基礎  在這方面遇到了這個問題  並解決了   我希望他對初學者有幫助  大神不喜勿噴

直接建一個activity  來放你需要的全域性變數的方法和成員  如下     我這裡給了初值是因為  我工程需要 要不有錯誤 

public class MyData extends Application {
    private  static String current="0.00";
    private  static String power="0.00";
    private  static String temp
="0.00"; private static int mode=0; public String getCur() { /////getCur()自己定義的 沒有什麼特別意思 return current; } public void setCur(String s) { this.current = s; } public String getPower() { return power; } public void setPower(String s) { this
.power = s; } public String getTemp() { return temp; } public void setTemp(String s) { this.temp = s; } public int getMode() { return mode; } public void setMode(int a) { this.mode = a; } public void onCreate() { super
.onCreate(); }
接著是 我在mainactivity中的Cur的值實時變化 我想讓secondactivity中的Cur跟著變化

在mainactivity中

public class MainActivity extends Activity {
MyData  mydata;

String Cur=“123”;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mydata = (MyData)getApplicationContext();
       mydata.setCur(Cur);

}

}

在secondactivity中                   看好 

public class secondActivity extends Activity {
MyData  mydata;

String Cur;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    mydata = (MyData)getApplicationContext();
       Cur=mydata.getCur();

}

}

在許可權裡面

<applicationandroid:name=".MyData"一定要加  不知道為什麼 好像是你所設定的類(我上面的兩個類)
所屬於哪個application的
你在上面的看到雖說Cur是一個字串並沒有在變 固定“123” 我就說這個意思 你可以弄個執行緒 讓他一直變化 你在secondactivity裡 在getCur你會發現他確實會跟著
mainactivity中的值變 具體怎麼操作 看你了    我也不大明白 我就知道這樣寫確實可以  實現資料的共享  還是動態共享
好了  我會的就這些