5

アプリケーションをデバイスまたはエミュレーターにインストールすると、アプリメニューに複数回表示されます。私の場合、アプリケーション名を示す4つのアイコンが表示されます。

各アイコンはアクティビティを表しているようです。アプリケーションには3つのタブ(アクティビティ付き)が含まれているため、メニューの最初の3つのアイコンは特定のアクティビティに移動し、4番目のアイコンはアプリ自体に移動します。

これは私のマニフェストです

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.jameselsey"
      android:versionCode="1"
      android:versionName="1.0">

    <uses-sdk android:minSdkVersion="7" />  
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>    
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />

    <application    android:icon="@drawable/icon" 
                    android:label="@string/app_name" 
                    android:name="com.jameselsey.domain.GlobalState"
                    android:theme="@android:style/Theme.NoTitleBar">

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

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

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

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

        <uses-library android:name="com.google.android.maps" />
    </application>    
</manifest> 

デバイスにアプリのアイコンを4つではなく、1つだけ持つにはどうすればよいですか?

ありがとう

4

3 に答える 3

10

あなたは4つの活動をしているので

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

これにより、アクティビティのランチャーアイコンが追加されます。

于 2010-10-30T23:06:16.280 に答える
6

答えはすでに提供されていますが、私はそれを簡単に説明しています。Javaでは、アプリケーションはmainメソッドを含むクラスで開始され、基本的にはアプリケーション全体への単一のエントリポイントになります。

Androidでは、Activityクラス内にmainメソッドがないことに気付いたかもしれません。ここでは、マニフェストファイルを使用して同じことを行います。アプリケーションは複数のエントリポイントを持つことができ"android.intent.action.MAIN"、このアクティビティがメインの開始アクティビティである必要があることを示し、LAUNCHERカテゴリは、このエントリポイントがアプリケーションランチャーにリストされる必要があることを示します。LAUNCHERandroidがアプリケーションアイコンと名前を提供するのでアクティビティを作成すると、ケースの4つのアイコンのそれぞれをクリックすると、4つの異なるアクティビティに移動することに注意してください。

肝心なのは、アプリケーションが複数のエントリポイントを必要としない場合は、それを使用する必要がないということです。

于 2010-10-31T08:46:08.653 に答える
5

intent-filter最後の3つのアクティビティから削除する

于 2010-10-30T23:07:51.263 に答える