當需要一個變量,每個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()); } }); } }
效果圖: