web-dev-qa-db-ja.com

androidでアプリケーションに名前を付ける

アプリケーションに名前を付けるには、マニフェストのこの部分を埋める必要があると確信していたため、私は老化したと思います。

<application Android:icon="@drawable/icon"  Android:label="MyApplicationName">

ただし、理解できない理由により、アプリケーションは最初のアクティビティの名前を取得します。この名前でデータをロードするため、「ロード」と呼ばれ、マニフェストで次のように定義されます。

<activity Android:name="AccueilSplash" Android:label="Loading">

なぜそうなったのでしょうか?

71
Sephy

ランチャーは実際にAndroid:labelおよびAndroid:icon宣言するアクティビティの場合

<intent-filter>
    <action Android:name="Android.intent.action.MAIN" />
    <category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>

そのため、アプリケーションラベルは役に立ちません。

84
yanchenko

これはツールの既知の問題です(Eclipseを使用していると思います)。 Googleグループ-Android Developers

アプリケーションと最初のアクティビティは、Android:labelアイテムの<activity>フィールドで指定された同じ名前を共有します。

アプリリストと最初のアクティビティでランチャーに異なるタイトルを使用する場合は、次のオプションから選択できます。

1.a)マニフェストにアプリケーション名のみを設定します。

<application
        Android:label="@string/app_name"
        ... >

最初のアクティビティにAndroid:label="@string/title_first_activity"を指定しないでください。 Applicationラベルを継承します。

OR

1.b)マニフェストの最初のアクティビティのAndroid:labelフィールドにアプリケーション名を設定します。

 <activity
            Android:label="@string/app_name"
            ... >
            <intent-filter>
                  <action Android:name="Android.intent.action.MAIN" />
                  <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
 </activity>

<application>アイテムは、<activity><application>フィールドに値を指定するかどうかに関係なく、Android:labelアイテムと同じラベルを共有します。

次のステップは次のとおりです。

2)FirstActivity.classで実行時に最初のアクティビティのタイトルを設定します

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_login);
        setTitle(R.string.title_activity_login);
        //TODO: insert the rest of the code
}

このようにして、最初のアクティビティは、携帯電話の画面に表示されてから数分後にタイトルを変更します。

10
Re MiDa

アプリケーションを実行するときに、画面上部のタイトルを参照していますか?その場合、そのタイトルバーには、現在のアクティビティのラベルが表示されます。

2
Matt Swanson