安卓聲明一個全局變量,每個activity都可以調用和修改

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




效果圖:

wKiom1S_K73zPPOfAAB0E-R-2eU178.jpg

wKioL1S_LJOi0HpZAABspv-IYhI921.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章