当需要一个变量,每个activity都能够调用和修改的时候,可以先创建一个类,让他继承Application,并实现一些方法就行了,下面的例子:App打开,文本显示全局变量的初始值,点击按钮,文本值改变,并更新显示。
首先创建一个类:Myapplication.java
- package com.example.application;
-
- import android.app.Application;
-
- public class Myapplication extends Application {
-
- //声明一个变量
- public String nameString;
-
- @Override
- public void onCreate() {
- // TODO Auto-generated method stub
- super.onCreate();
- setname("英雄联盟");
- }
-
- //实现setname()方法,设置变量的值
- public void setname(String name) {
- this.nameString = name;
- }
-
- //实现getname()方法,获取变量的值
- public String getname() {
- return nameString;
- }
- }
然后在AndroidManif.xml中加入
android:name=".Myapplication"
- <application
- android:name=".Myapplication"
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme" >
-
- <activity
- android:name="com.example.application.MainActivity"
- android:label="@string/app_name" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
-
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
最后在主程序中就可以调用和修改了
- package com.example.application;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.TextView;
-
- public class MainActivity extends Activity {
-
- Myapplication myapplication;//声明一个对象
- TextView textView;
- Button button;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- textView = (TextView) findViewById(R.id.text);
- button = (Button) findViewById(R.id.button1);
-
- //获得对象
- myapplication = (Myapplication) getApplication();
- //文字内容设置为全局变量的值
- textView.setText(myapplication.getname());
-
- button.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- //更改全局变量的值
- myapplication.setname("国服第一卡牌");
- //再次让文字内容设置为全局变量的值
- textView.setText(myapplication.getname());
- }
- });
- }
- }
效果图: