こんなことを言われたのが先日.
「そんなんManifestの<application>にandroid:labelタグで設定されてるやん」
とか調子こいていたのもつかの間
「app_nameが出てこない…( ゚д゚ )」
ということで今回のお題
ランチャーに表示するアプリケーション名の設定場所
結論から言うと原因はManifestの<intent-filter>
ただしこいつは悪さをしていたわけではなく, むしろ一生懸命仕事をした結果が原因らしい.
通常アプリを開いて最初に開きたいActivityには, Manifestにて
<intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter>
と宣言するはず.
すると, この<intent-filter>, こいつがランチャーに表示する名前を探し出す.
問題はこの時, <application>へ探しに行ってくれれば良いのに,
まず自分
↓
無ければ自分を含むActivity
の順に探そうとする.
結果, 名前を指定してやらなかったことが災いして, Activityにつけた名前を
「これがアプリケーション名だ!+(゚∀゚ 0)*」
とうれしそうに表示するわけですよ.
それじゃない…それじゃないんだ…!
なので
<intent-filter android:label="@string/app_name"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
といった形で, <intent-filter>のlabelで教えてやると, 望んだとおりのお仕事をしてくれます.
ちなみに 自分を含むActivity にすらlabelが無かった場合, 表示するのは
…そりゃねぇよorz
<application>さん使ってやれよ…
11/19訂正: ちゃんと<application>から取ってきてくれるみたいですorz
もうやだこのIS03
0 件のコメント:
コメントを投稿