2013-06-19 28 views
4

我知道這個問題之前已被問過,但在所有這些問題中,答案都是從onCreate活動方法中設置它。 我不想做這在我的onCreate方法,所以我這樣做是爲了我的清單文件,但無濟於事: -無法爲清單中的應用程序和啓動器活動設置不同的圖標/標籤

<application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher_screen" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Holo.Light" 
     > 
     <activity 
      android:name="com.iws.unify.HomeScreen" 
      android:label="@string/nullstring" 
      android:icon="@drawable/ic_launcher" 
      > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

出於某種原因,任何圖標/標籤我在活動的設置將覆蓋在應用程序標籤這是很煩人的。請幫忙。

+0

請仔細閱讀本,它就是答案[問題] [1] [1]:http://stackoverflow.com/questions/3488664/android-launcher-label-vs-activity-title – evan

回答

4

我有同樣的問題,我解決了使用非常奇怪,但簡單的解決方案。

1 - 創建一個新的活動,並呼籲它LauncherActivity。(設置此活動中,要顯示的應用程序圖標/標籤什麼的圖標和標籤)

2-組本次活動爲主要&您的應用的啓動器活動。 (從您的主屏幕活動中刪除<intent-filter>標籤)

3-設置本次活動的主題android:theme="@android:style/Theme.Translucent"

4-現在你LauncherActivityonCreate()沒有做任何事情剛開始的主屏幕使用活動的意圖並完成此活動。

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Intent intent = new Intent(this, HomeScreen.class); 
    startActivity(intent); 
    finish(); 
} 

完成()是必需的,當你按在主畫面上的應用程序關閉後退按鈕。

現在您的應用程序圖標和標籤將是您的主屏幕圖標不同,標註

您的清單應該是這樣的:

<application 
    android:allowBackup="true" 
    android:theme="@android:style/Theme.Holo.Light" 
    > 
    <activity 
     android:name="com.iws.unify.HomeScreen" 
     android:label="@string/nullstring" 
     android:icon="@drawable/ic_launcher" 
     > 
    </activity> 

    <activity 
     android:name="com.iws.unify.LauncherActivity" 
     android:icon="@drawable/ic_launcher_screen" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Translucent" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

+0

這並不奇怪。其實,這是我面對同樣情況後想到的第一個想法。 – malhobayyeb

1

回答:

刪除android活動中的圖標。

額外的信息:

與活動發射的主要活動將搭載Android運行時加以考慮。

例如: 如果你聲明兩個活動將下面的代碼「A」和「B」:

 <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

那麼你的應用程序將有兩個發射圖標「A」和「B」。

+0

如果我的答案工作,然後不要忘記upvote。 – amalBit

+0

對不起,我沒有明白。如果我有兩個發射器活動,它會如何解決我的問題? –

+0

添加額外的活動不是解決方案...它只是我困惑你我想.. @NewOverHere,只需刪除您的活動內的圖標屬性。 – amalBit

14

如果你需要的是有一個活動的行動欄圖標與應用程序圖標不同,您可以使用「android:logo」屬性覆蓋它:

<activity 
     android:name="com.iws.unify.HomeScreen" 
     android:label="@string/nullstring" 
     android:logo="@drawable/ic_launcher"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

這對我有用。 – Gunhan

+0

完成工作 – Ndupza

+0

最簡單的解決方案,不會增加太多開銷。工作很棒! – prageeth

0

您還可以使用「活動別名」:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Holo.Light"> 

    <activity 
     android:name="com.iws.unify.HomeScreen" 
     android:label="@string/nullstring" 
     android:exported="true" />    

    <activity-alias 
     android:name=".LaucherActivityAlias" 
     android:targetActivity="com.iws.unity.HomeScreen" 
     android:icon="@drawable/ic_launcher_screen"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity-alias> 

</application> 

你的「Play商店中的」圖標將顯示在應用程序節點指定的,所以你也可以做到這一點,如果你需要:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher_screen" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Holo.Light"> 

    <activity 
     android:name="com.iws.unify.HomeScreen" 
     android:label="@string/nullstring" 
     android:icon="@drawable/ic_launcher" 
     android:exported="true" />    

    <activity-alias 
     android:name=".LaucherActivityAlias" 
     android:targetActivity="com.iws.unity.HomeScreen" 
     android:icon="@drawable/ic_launcher_screen"> 
     <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity-alias> 

</application> 
相關問題