Android全局变量的定义与使用
来源:互联网 发布:数据库系统概论 pdf 编辑:程序博客网 时间:2024/05/19 05:32
在我们使用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运行程序
说明:程序首先进入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运行程序
说明:程序首先进入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专门提供的应用入口,并且运行周期贯穿整个程序运行。
- Android全局变量的定义与使用
- Android全局变量的定义与使用
- Android全局变量的定义与使用
- Android全局变量的定义与使用
- Android全局变量的定义与使用
- Android全局变量的定义与使用
- Android全局变量的定义与使用
- Android全局变量的定义与使用
- android中的全局变量定义与使用
- c++中的全局变量的定义与使用
- swift全局变量定义与使用
- 全局变量的声明与定义
- 全局变量的定义与声明
- MFC 全局变量与宏定义的使用问题
- MFC全局变量的定义与使用(类对象)
- iOS项目中全局变量的定义与使用
- iOS项目中全局变量的定义与使用
- Android中全局变量的定义
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- 【源码分享下载】每日更新之Android项目源码---手机天气预报系统
- Matlab编译mex文件:
- zoj 3811 条件下判定某遍历序列的合法性/ 一遍 dfs
- java 时间戳和PHP时间戳 的转换 php time()
- Android全局变量的定义与使用
- VisionMobile:没人谈及的Apple Watch的三个关键特点
- 搭建企业级搜索服务Solr
- HTTP应用流媒体分析
- sublime打开包含中文的文件乱码
- html5 canvas 一个漫天飞雪的效果
- Code Composer Studio 3.3 to 5.5 导入工程 问题————1
- Android按键事件发布流程
- 黑马程序员—C语言—指针