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

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

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

 

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

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

1.1定义Data类继承Application Data.class

  1. import android.app.Application;  
  2.   
  3. public class Data extends Application{  
  4.     private String b;  
  5.       
  6.     public String getB(){  
  7.         return this.b;  
  8.     }  
  9.     public void setB(String c){  
  10.         this.b= c;  
  11.     }  
  12.     @Override  
  13.     public void onCreate(){  
  14.         b = ”hello”;  
  15.         super.onCreate();  
  16.     }  
  17. }  
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

  1. android:name=“com.animator1.Data” >  
android:name="com.animator1.Data" >

1.3创建两个Activity

MainActivity.class

  1. public class MainActivity extends Activity {  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.main);  
  7.         Button btn = (Button) this.findViewById(R.id.button1);  
  8.         final TextView txtview = (TextView) this.findViewById(R.id.main);  
  9.         final Data app = (Data)getApplication();  
  10.         txtview.setText(app.getB());  
  11.         btn.setOnClickListener(new View.OnClickListener() {  
  12.               
  13.             @Override  
  14.             public void onClick(View v) {  
  15.                 // TODO Auto-generated method stub  
  16.                 app.setB(”no_hello”);  
  17.                 txtview.setText(app.getB());  
  18.                 Intent intent = new Intent(MainActivity.this, secondActivity.class);  
  19.                 startActivity(intent);  
  20.             }  
  21.         });  
  22.     }  
  23. }  
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

  1. public class secondActivity extends Activity{  
  2.     @Override  
  3.     protected void onCreate(Bundle savedInstanceState){  
  4.         super.onCreate(savedInstanceState);  
  5.         setContentView(R.layout.second);  
  6.         Button btn = (Button) this.findViewById(R.id.button2);  
  7.         final TextView txtview = (TextView) this.findViewById(R.id.second);  
  8.         final Data app = (Data)getApplication();  
  9.         txtview.setText(app.getB());  
  10.         btn.setOnClickListener(new View.OnClickListener() {  
  11.               
  12.             @Override  
  13.             public void onClick(View v) {  
  14.                 // TODO Auto-generated method stub                
  15.                 app.setB(”hello”);  
  16.                 txtview.setText(app.getB());  
  17.                 Intent intent = new Intent(secondActivity.this, MainActivity.class);  
  18.                 startActivity(intent);  
  19.             }  
  20.         });  
  21.     }  
  22. }  
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

  1. public class Data{  
  2.     private static String a =“feiyangxiaomi”;  
  3.       
  4.     public static String getA() {  
  5.         return a;  
  6.     }  
  7.       
  8.     public static void setA(String a) {  
  9.         Data.a = a;  
  10.     }  
  11. }  
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

  1. public class MainActivity extends Activity {  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.main);  
  7.         Button btn = (Button) this.findViewById(R.id.button1);  
  8.         final TextView txtview = (TextView) this.findViewById(R.id.main);  
  9.         txtview.setText(Data.getA());  
  10.         btn.setOnClickListener(new View.OnClickListener() {  
  11.               
  12.             @Override  
  13.             public void onClick(View v) {  
  14.                 // TODO Auto-generated method stub  
  15.                 Data.setA(”no_feiyangxiaomi”);  
  16.                 Intent intent = new Intent(MainActivity.this, secondActivity.class);  
  17.                 startActivity(intent);  
  18.             }  
  19.         });  
  20.     }  
  21. }  
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

  1. public class secondActivity extends Activity{  
  2.     @Override  
  3.     protected void onCreate(Bundle savedInstanceState){  
  4.         super.onCreate(savedInstanceState);  
  5.         setContentView(R.layout.second);  
  6.         Button btn = (Button) this.findViewById(R.id.button2);  
  7.         final TextView txtview = (TextView) this.findViewById(R.id.second);  
  8.         txtview.setText(Data.getA());  
  9.         btn.setOnClickListener(new View.OnClickListener() {  
  10.               
  11.             @Override  
  12.             public void onClick(View v) {  
  13.                 // TODO Auto-generated method stub                
  14.                 Data.setA(”feiyangxiaomi”);  
  15.                 Intent intent = new Intent(secondActivity.this, MainActivity.class);  
  16.                 startActivity(intent);  
  17.             }  
  18.         });  
  19.     }  
  20. }  
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专门提供的应用入口,并且运行周期贯穿整个程序运行。

 

 

 

 

 


 


 

 

 

document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
    <div id="digg" articleid="9966215">
        <dl id="btnDigg" class="digg digg_enable" onclick="btndigga();">

             <dt>顶</dt>
            <dd>17</dd>
        </dl>


        <dl id="btnBury" class="digg digg_enable" onclick="btnburya();">

              <dt>踩</dt>
            <dd>0</dd>               
        </dl>

    </div>
 <div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank">&nbsp;</a>   </div>
<div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank">&nbsp;</a></div>
<script type="text/javascript">
            function btndigga() {
                $(".tracking-ad[data-mod='popu_222'] a").click();
            }
            function btnburya() {
                $(".tracking-ad[data-mod='popu_223'] a").click();
            }
        </script>

<div style="clear:both; height:10px;"></div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值