Application作为全局变量文档格式.docx
《Application作为全局变量文档格式.docx》由会员分享,可在线阅读,更多相关《Application作为全局变量文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
privatestaticfinalStringVALUE="
Harvey"
;
privateStringvalue;
@Override
publicvoidonCreate()
{
super.onCreate();
setValue(VALUE);
//初始化全局变量
}
publicvoidsetValue(Stringvalue)
this.value=value;
publicStringgetValue()
returnvalue;
}
注:
继承Application类,主要重写里面的onCreate()方法(android.app.Application包的onCreate()才是真正的Android程序的入口点),就是创建的时候,初始化变量的值。
然后在整个应用中的各个文件中就可以对该变量进行操作了。
2、在ApplicationManifest.xml文件中配置自定义的Application
<
application
android:
name="
CustomApplication"
>
/application>
实例代码:
CustomApplication.java
/***继承Application
*
*@authoradmin
*/
FirstActivity.java
publicclassFirstActivityextendsActivity
privateCustomApplicationapp;
publicvoidonCreate(BundlesavedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
app=(CustomApplication)getApplication();
//获得CustomApplication对象
Log.i("
FirstActivity"
"
初始值====="
+app.getValue());
//获取进程中的全局变量值,看是否是初始化值
app.setValue("
HarveyRen"
);
//重新设置值
修改后====="
//再次获取进程中的全局变量值,看是否被修改
Intentintent=newIntent();
intent.setClass(this,SecondActivity.class);
startActivity(intent);
只需要调用Context的getApplicationContext或者Activity的getApplication方法来获得一个Application对象,然后再得到相应的成员变量即可。
它是代表我们的应用程序的类,使用它可以获得当前应用的主题和资源文件中的内容等,这个类更灵活的一个特性就是可以被我们继承,来添加我们自己的全局属性。
SecondActivity.java
publicclassSecondActivityextendsActivity
protectedvoidonCreate(BundlesavedInstanceState)
//获取应用程序Log.i("
SecondActivity"
当前值====="
//获取全局值
AndroidManifest.xml
?
xmlversion="
1.0"
encoding="
utf-8"
manifest
xmlns:
android="
package="
com.android.test"
android:
versionCode="
1"
versionName="
<
uses-sdk
minSdkVersion="
8"
/>
icon="
@drawable/icon"
label="
@string/app_name"
!
--将我们以前一直用的默认Application设置成自定义的CustomApplication-->
activity
.FirstActivity"
intent-filter>
action
android.intent.action.MAIN"
category
android.intent.category.LAUNCHER"
/intent-filter>
/activity>
.SecondActivity"
/manifest>
自己写的例子:
packagecom.example.globalvaribal;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
publicclassMainActivityextendsActivity{
privateButtonbutton=null;
privateMyAppapplicationTest=null;
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("
ltb"
爱王馨"
System.out.println("
骂了隔壁"
button=(Button)this.findViewById(R.id.button);
button.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewarg0){
applicationTest=(MyApp)getApplication();
applicationTest.setName("
王馨"
applicationTest.setAge("
30"
Intentintent=newIntent(MainActivity.this,
AnotherActivity.class);
startActivity(intent);
}
});
importandroid.widget.TextView;
publicclassAnotherActivityextendsActivity{
privateTextViewtextView=null;
setContentView(R.layout.activity_another);
textView=(TextView)this.findViewById(R.id.textview);
applicationTest=(MyApp)this.getApplication();
textView.setText(applicationTest.getName()+applicationTest.getAge());
importandroid.app.Application;
publicclassMyAppextendsApplication{
privateStringname="
"
publicMyApp(){
super();
//TODOAuto-generatedconstructorstub
privateStringage="
publicvoidonCreate(){
super.onCreate();
setName("
李天保"
setAge("
25"
publicStringgetName(){
returnname;
publicMyApp(Stringname,Stringage){
this.name=name;
this.age=age;
publicvoidsetName(Stringname){
publicStringgetAge(){
returnage;
publicvoidsetAge(Stringage){
manifestxmlns:
package="
com.example.globalvaribal"
>
targetSdkVersion="
17"
com.example.globalvaribal.MyApp"
allowBackup="
true"
@drawable/ic_launcher"
theme="
@style/AppTheme"
com.example.globalvaribal.MainActivity"
actionandroid:
categoryandroid:
activityandroid:
com.example.globalvaribal.AnotherActivity"