您的位置:首页 > 移动开发 > Android开发

android使用全局变量的两种方法

2015-07-25 22:10 501 查看
http://blog.csdn.net/feiyangxiaomi/article/details/9966215



在我们使用android编写程序的时候,少不了想利用全局变量,但是面向对象语言和过程语言区别很大,不再是include就可以的。这里我写了使用全局变量的两种方法

1.使用application来保存全局变量

这里没有太多理论性的东西,无非就是一些实际操作。

1.1定义Data类继承Application Data.class

[java] view
plaincopy

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

[java] view
plaincopy

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

1.3创建两个Activity

MainActivity.class

[java] view
plaincopy

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

[java] view
plaincopy

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运行程序





说明:程序首先进入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

[java] view
plaincopy

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

[java] view
plaincopy

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

[java] view
plaincopy

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运行程序





说明:程序首先进入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专门提供的应用入口,并且运行周期贯穿整个程序运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: