在我们使用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;}@Overridepublic 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 {@Overrideprotected 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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubapp.setB("no_hello");txtview.setText(app.getB());Intent intent = new Intent(MainActivity.this, secondActivity.class);startActivity(intent);}});}}

secondActivity.class

public class secondActivity extends Activity{@Overrideprotected 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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubapp.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

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 {@Overrideprotected 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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubData.setA("no_feiyangxiaomi");Intent intent = new Intent(MainActivity.this, secondActivity.class);startActivity(intent);}});}}

secondActivity.class

public class secondActivity extends Activity{@Overrideprotected 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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubData.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专门提供的应用入口,并且运行周期贯穿整个程序运行。



更多相关文章

  1. Android(安卓)Activity界面切换添加动画特效
  2. Android(安卓)拨号器的简单实现
  3. android用户界面之按钮(Button)教程实例汇
  4. 锁屏界面
  5. [Android(安卓)NDK]Android(安卓)JNI开发例子 ---3 在JNI中实现o
  6. android用户界面-组件Widget-地图视图MapView
  7. android用户界面-组件Widget-画廊视图Gallery
  8. Android(安卓)Activity界面切换添加动画特效
  9. Android(安卓)View的介绍和使用

随机推荐

  1. 【开发者必看】移动应用趋势洞察白皮书-
  2. 关于 Git 的 20 个面试题[每日前端夜话0x
  3. 三子棋
  4. 怎样在 Linux 中配置静态网络连接[每日前
  5. 坚持写博客的第二天,在敲代码的时候时间过
  6. 使用 TypeScript 和依赖注入实现一个聊天
  7. 分享崔庆才的一些学习经验和生活感悟
  8. 为什么要用 Node.js?[每日前端夜话0x77]
  9. pytest中print的坑
  10. 程序员到底该怎么给女朋友挑礼物