天天看點

android使用全局變量的兩種方法,android使用全局變量的兩種方法

在我們使用android編寫程式的時候,少不了想利用全局變量,但是面向對象語言和過程語言差別很大,不再是include就可以的。這裡我寫了使用全局變量的兩種方法:

1.使用application來儲存全局變量

這裡沒有太多理論性的東西,無非就是一些實際操作。

1.1定義Data類繼承Application Data.class

import android.app.Application;

public class Data extends Application{

private String b;

public String getB(){

return this.b;

}

public void setB(String c){

this.b= c;

}

@Override

public void onCreate(){

b = "hello";

super.onCreate();

}

}

1.2在manifest.xml中聲明application

android:name="com.animator1.Data" >

1.3建立兩個Activity

MainActivity.class

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button btn = (Button) this.findViewById(R.id.button1);

final TextView txtview = (TextView) this.findViewById(R.id.main);

final Data app = (Data)getApplication();

txtview.setText(app.getB());

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

app.setB("no_hello");

txtview.setText(app.getB());

Intent intent = new Intent(MainActivity.this, secondActivity.class);

startActivity(intent);

}

});

}

}

secondActivity.class

public class secondActivity extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.second);

Button btn = (Button) this.findViewById(R.id.button2);

final TextView txtview = (TextView) this.findViewById(R.id.second);

final Data app = (Data)getApplication();

txtview.setText(app.getB());

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

app.setB("hello");

txtview.setText(app.getB());

Intent intent = new Intent(secondActivity.this, MainActivity.class);

startActivity(intent);

}

});

}

}

1.4運作程式

android使用全局變量的兩種方法,android使用全局變量的兩種方法
android使用全局變量的兩種方法,android使用全局變量的兩種方法

說明:程式首先進入MainActivity.class中,擷取Data中變量b的值,顯示圖1所示的界面hello,單擊button後app.setB("no_hello"), 修改變量b的值。

跳轉到secondActivity.class,擷取Data中變量b的值,顯示圖2所示的界面no_hello,單擊button後app.setB("hello"), 修改變量b的值。

跳轉回MainActivity.class……  循環

2.使用普通的類Data.class來儲存全局變量

方法和上面差不多。

1.1 定義Data.class

public class Data{

private static String a ="feiyangxiaomi";

public static String getA() {

return a;

}

public static void setA(String a) {

Data.a = a;

}

}

1.2建立兩個Activity

MainActivity.class

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button btn = (Button) this.findViewById(R.id.button1);

final TextView txtview = (TextView) this.findViewById(R.id.main);

txtview.setText(Data.getA());

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Data.setA("no_feiyangxiaomi");

Intent intent = new Intent(MainActivity.this, secondActivity.class);

startActivity(intent);

}

});

}

}

secondActivity.class

public class secondActivity extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.second);

Button btn = (Button) this.findViewById(R.id.button2);

final TextView txtview = (TextView) this.findViewById(R.id.second);

txtview.setText(Data.getA());

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Data.setA("feiyangxiaomi");

Intent intent = new Intent(secondActivity.this, MainActivity.class);

startActivity(intent);

}

});

}

}

1.3運作程式

android使用全局變量的兩種方法,android使用全局變量的兩種方法
android使用全局變量的兩種方法,android使用全局變量的兩種方法

說明:程式首先進入MainActivity.class中,擷取Data中變量b的值,顯示圖1所示的界面feiyangxiaomi,單擊button後app.setB("no_feiyangxiaomi"), 修改變量b的值。

跳轉到secondActivity.class,擷取Data中變量b的值,顯示圖2所示的界面no_feiyangxiaomi,單擊button後app.setB("feiyangxiaomi"), 修改變量b的值。

跳轉回MainActivity.class……  循環

3.總結

兩種方法我測試的都可以的,大多數人應該更會偏向于第一種,畢竟Application是android專門提供的應用入口,并且運作周期貫穿整個程式運作。