android中通过Application设置全局变量

来源:互联网 发布:mysql数据库zip下载 编辑:程序博客网 时间:2024/06/10 17:57


首先设置全局变量的方法不只下面一种,但是通常会采用application保存全局变量。

Application是android专门提供的应用入口,最重要的是它的运行周期可以贯穿整个程序运行。

下面通过代码来说明设置全局变量的方法。

 

1.定义GlobalVariable类继承Application

import android.app.Application;public class GlobalVariable extends Application {private String route_id;private static String NAME = "MyApplication";  public String getRoute(){return this.route_id;}public void setRoute(String route){this.route_id=route;}public void onCreate(){super.onCreate();System.out.println(NAME);setRoute(NAME);}}

 2.通过两个类来观察全局变量值的变化是否符合要求

(1)MainActivity类

  在onCreate()函数中执行以下代码,可以在LogCat中看到输出值为MyApplication

private GlobalVariable route;route=(GlobalVariable)getApplication();//获得应用程序GlobalVariableLog.e("yuanzhi", route.getRoute());

在需要改变全局变量值的地方,加入以下代码,即改变了全局变量的值,可以去其它类中查看值是否发生了变化

route.setRoute("change");

(2)OtherActivity类

可以看到值发生了变化,输出的值为change

private GlobalVariable route;route=(GlobalVariable)getApplication();route_name=route.getRoute();Log.e("changed", route.getRoute());

3.我们创建的Android项目并没有ApplicationManifest.xml,需要创建ApplicationManifest.xml

应当注意包名要写自己的包名,android:name的名称也要根据自己的项目需要进行修改。

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="upc.edu"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name"                 android:name="upc.edu.DBManager.GlobalVariable">          <activity android:name="upc.edu.cn.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>               <activity android:name="upc.edu.cn.TakePhotoActivity"></activity>   </application>   <uses-sdk android:minSdkVersion="8" /></manifest>

4.但是如果添加了ApplicationManifest.xml,会出现如下的错误

这是因为没有在AndroidManifest.xml中声明。

在<application>中声明 android:name="upc.edu.DBManager.GlobalVariable" (根据自己的需要修改),这样问题就解决,可以正常运行了。
开始可能会有错误,但是按照上面的步骤一步一步来就能够在Android项目不同的Activity间设置全局变量啦~

0 0
原创粉丝点击