2013-04-23 115 views
0

我搜索的方式來存儲將與所有活動共享的全局變量。應用爲全局變量

我發現這一點:

How to declare global variables in Android?

和我創建的擴展應用程序的類,我宣佈在清單文件中該應用程序。

但是我有一個問題:

我不能decalre不止一個應用程序更加清單文件......

因此,如果我想聲明兩個應用程序,我能做些什麼?

這裏是我的清單文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.sa" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true"/> 



    <uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="10" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.CAMERA"/> 

    <permission 
    android:name="com.example.sa.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 



    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
    <!-- The following two permissions are not required to use 
    Google Maps Android API v2, but are recommended. --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
     <uses-permission android:name="com.example.sa.permission.MAPS_RECEIVE"/> 
     <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 




    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" 
     android:debuggable="true" 
     android:name=".FriendPickerApplication"> 



     <activity 
      android:name="com.example.sa.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> 

     <!-- Entry for RegisterActivity.class --> 
     <activity android:name=".RegisterActivity" 
        android:label="Register New Account"></activity> 
     <meta-data android:value="@string/app_id" android:name="com.facebook.sdk.ApplicationId"/> 
     <activity android:label="@string/app_name" android:name="com.facebook.LoginActivity"></activity> 
     <activity android:name=".ProfileActivity" android:label="Profile page"></activity> 

     <meta-data 
       android:name="com.google.android.maps.v2.API_KEY" 
       android:value="xxxx"/> 


     <activity android:name="DashBoardActivity"></activity> 
     <activity android:name="AllItemsActivity"></activity> 
     <activity android:name="itemCategory"></activity> 
     <activity android:name="ItemMapActivity"></activity> 

    </application> 

</manifest> 

,我也想delare擴展應用程序,將存儲共享變量的類:

<application android:name="MyApp" 
    android:icon="@drawable/icon" 
    android:label="@string/app_name2"></application> 

,這是類:

class MyApp extends Application { 

    private String myState; 

    public String getState(){ 
    return myState; 
    } 
    public void setState(String s){ 
    myState = s; 
    } 
} 

class Blah extends Activity { 

    @Override 
    public void onCreate(Bundle b){ 
    ... 
    MyApp appState = ((MyApp)getApplicationContext()); 
    String state = appState.getState(); 
    ... 
    } 
} 

非常感謝

+0

爲什麼沒有幾個變量:即myState1和myState2,並得到一個或其他? – 2013-04-23 16:23:11

+0

我需要活動之間的每一次傳遞的變量很多,我要聲明他們是全球性的,所有活動之間共享.. – 2013-04-23 16:27:25

+0

爲什麼需要兩個獨立的應用程序?爲什麼你不能在單個應用程序中包含多個活動? – 2013-04-23 16:38:46

回答

1

你不能聲明多個應用程序。

你可以有更多的變量在你的應用程序,但應用程序是一個單例類。

0

要定義全局變量,你可以使用static關鍵字的:

public static String myState; 
+0

嗨,我在哪些活動中聲明這個變量?非常感謝 – 2013-04-23 16:26:28

+0

正如我上面提到@AdirRahamim聲明全局變量。 – 2013-04-23 16:28:33

+0

我需要在哪裏聲明這個變量?我不明白, – 2013-04-23 16:30:12