• 转:Android设置全局变量


    声明:本文转自feiyangxiaomi的博客:http://blog.csdn.net/feiyangxiaomi/article/details/9966215仅供学习使用,转载请指明原作者。

    文中介绍了两种在Android中使用全局变量的方法,其中第一中是android推荐的,但是只能用于继承Activity类使用,第二种是java中设置静态变量和方法适用于所有类。

    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

    [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……  循环

  • 相关阅读:
    ie下如果已经有缓存,load方法的效果就无法执行.的解决方法
    css公共样式
    pageX、pageY全兼容
    js滚动加载插件
    getComputedStyle()与currentStyle
    excel15个技巧
    XMLHttpRequest函数
    继承模式
    cookie函数
    jQuery添加删除元素
  • 原文地址:https://www.cnblogs.com/bewolf/p/4691238.html
Copyright © 2020-2023  润新知