当需要一个变量,每个activity都能够调用和修改的时候,可以先创建一个类,让他继承Application,并实现一些方法就行了,下面的例子:App打开,文本显示全局变量的初始值,点击按钮,文本值改变,并更新显示。

首先创建一个类:Myapplication.java

  1. package com.example.application;
  2. import android.app.Application;
  3. public class Myapplication extends Application {
  4. //声明一个变量
  5. public String nameString;
  6. @Override
  7. public void onCreate() {
  8. // TODO Auto-generated method stub
  9. super.onCreate();
  10. setname("英雄联盟");
  11. }
  12. //实现setname()方法,设置变量的值
  13. public void setname(String name) {
  14. this.nameString = name;
  15. }
  16. //实现getname()方法,获取变量的值
  17. public String getname() {
  18. return nameString;
  19. }
  20. }

然后在AndroidManif.xml中加入

android:name=".Myapplication"

  1. <application
  2.         android:name=".Myapplication"     
  3.         android:allowBackup="true"
  4.         android:icon="@drawable/ic_launcher"
  5.         android:label="@string/app_name"
  6.         android:theme="@style/AppTheme" > 
  7.         <activity
  8.             android:name="com.example.application.MainActivity"
  9.             android:label="@string/app_name" >
  10.             <intent-filter>
  11.                 <action android:name="android.intent.action.MAIN" />
  12.                 <category android:name="android.intent.category.LAUNCHER" />
  13.             </intent-filter>
  14.         </activity>
  15.     </application>

最后在主程序中就可以调用和修改了

  1. package com.example.application;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.widget.Button;
  7. import android.widget.TextView;
  8. public class MainActivity extends Activity {
  9. Myapplication myapplication;//声明一个对象
  10. TextView textView;
  11. Button button;
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. textView = (TextView) findViewById(R.id.text);
  17. button = (Button) findViewById(R.id.button1);
  18. //获得对象
  19. myapplication = (Myapplication) getApplication();
  20. //文字内容设置为全局变量的值
  21. textView.setText(myapplication.getname());
  22. button.setOnClickListener(new OnClickListener() {
  23. @Override
  24. public void onClick(View v) {
  25. //更改全局变量的值
  26. myapplication.setname("国服第一卡牌");
  27. //再次让文字内容设置为全局变量的值
  28. textView.setText(myapplication.getname());
  29. }
  30. });
  31. }
  32. }




效果图:

wKiom1S_K73zPPOfAAB0E-R-2eU178.jpg

wKioL1S_LJOi0HpZAABspv-IYhI921.jpg