nmtysh.log

Tech系のネタや日々の独り言などを書いています。

Android:アプリを起動したときに、実行するActivityを変更する

eclipseでプロジェクト作成時に指定したActivityではなく、他のActivityをアプリ起動時に実行したいと思いました。
(というより、使用したサンプルにActivityが2つあるのですが、ボタンで片方のActivityを呼び出すなどの、Activityを切り替える方法が用意されていませんでした。)

・アプリ起動時に実行するActivityを変更する方法

  1. プロジェクト内にある、AndroidManifest.xmlファイルを開く。
  2. アプリ起動時に実行したいActivityを定義している、<activity>要素の<intent-filter>要素内に<category android:name="android.intent.category.LAUNCHER" />を書く。
  3. 逆に今までアプリ起動時に実行しているActivityの<intent-filter>から<category android:name="android.intent.category.LAUNCHER" />を取り除く。

わかりにくい日本語になってしまいました。。。

・サンプル
"LinearLayoutParamsActivity"がアプリ起動時に実行したいActivity。

<activity android:name=".ButtonActivity"
    android:label="@string/view_label" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <!-- <category android:name="android.intent.category.LAUNCHER" /> -->
    </intent-filter>
</activity>
<activity android:name=".LinearLayoutParamsActivity"
    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で<category android:name="android.intent.category.LAUNCHER" />が定義されていたので、どうやったら起動時に実行するActivityを切り替えられるのかかなり悩んでしまいました。