[解決済み】ランチャーにアクティビティタイトルとは別のラベルを設定するには?
質問
この質問は以前にもされたことがありますが、満足のいく回答は得られませんでした。そこで、もう一度試してみます。
アプリケーションのランチャーアイコン(スタート画面に表示されるもの!)に、別の短いキャプションを付けたいのですが、どうすればよいでしょうか?ランチャーのラベルは、メインアクティビティのラベルに関するmainfestのセクションから、以下のように取得するようです。
<activity android:name="MainActivity" android:label="@string/app_short_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
私はすでにここで、私のアプリの名前@string/app_nameへのオリジナルの参照を、別の短い文字列リソースに変更しました。
しかし - 大きい
BUT
もちろん、このアクティビティのデフォルトのタイトルも変更されます。長いアプリケーション名には十分なスペースがありますから。で長いタイトルを再び設定します。
onCreate
を使って
setTitle(int)
というのも、短い名前がユーザーに見える時間は短いのですが、気づくには十分な長さだからです
そして - カスタムタイトルバーについて言及することで、私の質問に答えないでください...。私は、くだらない文字列のタイトルのために、そんな長い道のりを歩きたくありません! また、カスタムタイトルバーは、あまり効果がないため、描くのが面倒です。
以下のものはありますか? 簡単な方法 ランチャーに別の文字列を表示させるだけでいいのでしょうか? ご回答ありがとうございました。
編集してください。 もうひとつ、カスタムタイトルバーが面倒な理由は、デフォルトのタイトルバーと同じようには見えないからです。結局のところ、異なる外観を望まないのであれば、それは解決策にはなり得ません。
どうすればいい?
どうやら
<intent-filter>
はlabel属性を持つことができます。これがない場合、ラベルは親コンポーネント(ActivityまたはApplication)から継承されます。つまり、これを使えば、ランチャーアイコンにラベルを設定しつつ、アクティビティに独自のタイトルを設定することができます。
エミュレータでは動作しますが、実機では使用するランチャーの実装に依存するため、動作しない可能性があることに注意してください。
http://developer.android.com/guide/topics/manifest/intent-filter-element.html
<activity
android:name=".ui.HomeActivity"
android:label="@string/title_home_activity"
android:icon="@drawable/icon">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
補足: <intent-filter> は icon 属性を持つこともできますが、その場合 不可解なことに、それは ではなく で指定されたアイコンをオーバーライドします。 アクティビティです。このことは、ネイティブの SDK 11+のActionBarは、IconとLogoで指定されたものを使用します。 アクティビティ
情報を追加しました。 ラベルはApplicationではなくActivityから継承しています。
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".StartActivity"
android:label="@string/app_long_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
この場合、app_long_nameは、上記のように内部にラベルを貼らなければ、ランチャーアイコンと一緒に表示されます。
関連
-
[解決済み】Android: Intent エラーを処理するアクティビティは見つかりませんでしたか?どのように解決するのか
-
[解決済み】インストールエラー。インストールエラー:install_failed_older_sdk
-
[解決済み】Androidエミュレータのエラーメッセージ。"PANIC: Missing emulator engine program for 'x86' CPUS." (パニック: エミュレータ・エンジン・プログラムがありません)
-
[解決済み] 設定 ':classpath' の依存関係をすべて解決できなかった。
-
[解決済み】onCreateOptionsMenu(Menu メニュー)とは何ですか?)
-
[解決済み】Android Studioでマニフェストのマージに失敗し、複数のエラーが発生した。
-
[解決済み】プロガードを有効にすると、タスク ':app:crashlyticsStoreDeobsDebug' の依存関係を判断できない。
-
[解決済み] Xlint:deprecationを使用して再コンパイルする方法
-
[解決済み] Android: @drawable/picture を drawable に変換するのに失敗しました。
-
[解決済み] 既存のカスタムテーマでXMLのアクティビティのタイトルバーを非表示にする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android TextView : "setTextで表示されたテキストを連結しない" について
-
[解決済み】メソッド 'findViewById(int)' を解決できない。)
-
[解決済み】Android Studioでパラメータ化されたユニットテストを実行すると、指定されたインクルードに対するテストが見つからないエラーが発生する
-
[解決済み】「ArrayAdapterはリソースIDがTextViewであることが必要」XMLの問題点
-
[解決済み】Android Studio 3.2 - com.android.tools.build:aapt2:3.2.0-4818971 を見つけられませんでした。
-
[解決済み】sendUserActionEvent()がnullである。
-
[解決済み] SDKの場所がandroid studioで見つからない
-
[解決済み] AndroidでBluetoothが有効かどうかのチェックに失敗する(REQUEST_ENABLE_BTを変数に解決できない)。
-
[解決済み] setBackgroundDrawable() 非推奨
-
[解決済み] Android Fragment onAttach() 非推奨