2012-10-25 126 views
2

我通過更改清單的應用程序節點(AndroidManifest.xml)中的android:label字段更改我的Android應用程序的名稱後跟上this tutorialAndroid應用程序名稱不會在應用程序抽屜中顯示

應用節點:

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/Theme.pps" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

的strings.xml - 包含不同的字符串名稱的XML文件。

<resources> 
<string name="app_name">PPS</string> 
<string name="menu_settings">Settings</string> 
<string name="title_activity_main"></string> 
</resources> 

完成此任務後,名稱仍不會顯示。這是我運行應用程序並將其安裝在我的測試設備上時看到的。

Application icon only; no name

一個奇怪的事情發生了,當我加入文字<string name="title_activity_main"></string>改變android:label存在於活動節點的值,應用程序似乎繼承,作爲其name.Why會出現這種情況?我是否錯誤地聲明瞭某些內容?有些價值觀衝突嗎?

更新:

當我選擇「管理應用」我居然看到了應用程序的名稱。

enter image description here

+0

在這些更改之後再次運行之前清除了項目嗎? – Adinia

+0

是的,我清理了項目,但它仍然不會顯示。 –

+0

您是否還試圖在再次運行之前手動從設備上卸載應用程序? – Adinia

回答

6

的Android採取第一第一活動的名稱(android.intent.action。 MAIN)作爲應用程序的顯示名稱。要爲您的活動設置標題,您應該在活動中進行setTitle()調用。例如。

您的清單如下:

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

您的活動看起來是這樣的:

public class EntryPoint extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    setTitle(R.string.title_activity_main); 

} 

希望這有助於。

+1

當我使用setTitle()似乎有一個延遲,因此它的佈局後加載標題出現。 –

+0

我也有這個問題。如果您發現解決方法,請告訴我。它在仿真器上很明顯,但幾乎不在快速設備上。 – iceman

0

字符串是空這裏

<string name="title_activity_main"></string> 

更改默認上面的行至

<string name="title_activity_main">Your Activity Name</string> 
+0

我希望它是空的。我不希望活動有一個名稱。 –

+0

當我添加我的活動名稱時,這將成爲我的應用程序的名稱。 –

+0

如果你的活動永遠不會有名字,你可以使用'android:theme =「@ android:style/Theme.NoTitleBar」',或者讓你的自定義主題繼承這個。 – Adinia

1

您抽屜裏的東西不是應用程序,它是您的應用程序的啓動器/主要活動

因此,您只能看到該活動的名稱(應用程序可以擁有更多的活動)。如果因爲某種原因你不希望這個活動有名字,那麼你不應該感到驚訝,因爲它最終沒有一個。這是一個名字。

可能最好的辦法是'修復'爲什麼你不想讓它有名字?隱藏它或類似的東西。

+0

好吧,在抽屜中使用的圖標是在應用程序節點中聲明的,所以我沒有發現它是合乎邏輯的... – Till

+0

說了這麼多,我想它確實有道理,考慮到應用程序節點實際上只是子節點的默認值,所以它們可以或不可以被覆蓋。 – Till

相關問題