当需要一个变量,每个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());
}
});
}
}
效果图:
转载于:https://blog.51cto.com/luoguoxin/1606529