アプリケーションの開始アクティビティを変更する


386

アプリケーションの要点を作成しましたが、開始点となる別のアクティビティ(ログイン画面の一種)を追加したいと思います。

いくつかの質問:

  • 1私はアクティビティを切り替える方法についてかなりまともなハンドルを持っています(この記事に基づく:http : //www.linux-mag.com/id/7498、新しいアクティビティを作成する方法がわかりません(日食付き)

  • 2新しいアクティビティを作成したら、それをアプリケーションのデフォルトアクティビティとして設定するにどうすればよいですか? 私はクラスの名前を変更することができると思います...しかし、それを処理するよりエレガントな方法があります(おそらく内でAndroidManifest.xml)?

回答:


660

はい、AndroidManifest.xmlファイルを使用します。実際には、アプリケーションマニフェストで複数のランチャーアクティビティを指定することもできます。ランチャーでアクティビティを表示するには、マニフェストのアクティビティに次の属性を追加します。

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

49
この投稿の内容が分からない場合は、プロジェクトのルートにあるAndroidManifest.xmlを使用してください。Eclipseでは、それをダブルクリックして右端のタブをクリックすると、XMLを直接編集できます。
オースティンマホニー

3
まことにありがとうございます。それで、そのインテントフィルターノードをその子ノードに含めることで、アプリケーションの起動時に最初にロードするアクティビティに何が含まれるようになりますか?
Kyle

4
@Kyleアクティビティがランチャーページに表示されます。このインテントフィルターを使用して複数のアクティビティを作成し、ホーム画面に複数のアイコンを表示できます。
Nathan Schwermann、2011年

3
「アプリケーションマニフェストで実際に複数のランチャーアクティビティを指定することもできます」というこの行に言及します。このアクティビティは、複数のアクティビティがある場合に最初に起動します
Tofeeq Ahmad '29

48
これは正解ですが、奇妙なことに気づきました。開始アクティビティを他のものに変更しても、元の起動されたアクティビティがまだ存在する場合、SDKはアプリケーションを起動できなくなります。どういうわけか、起動構成のアクティビティへの参照があります。したがって、上記の変更を行った後、[実行]> [デバッグ構成]に移動し、プロジェクトのビルドプロファイルを見つけて[Android]タブを開き、起動したアクティビティを[起動]の下のデフォルトまたは正しいアクティビティに変更する必要があります。 : " なぜデフォルトが選択解除されたのかはわかりませんが、デフォルトに戻すとうまくいきました。
zeh

91

プロジェクトのルートフォルダーにあるAndroidManifest.xmlに移動し、最初に実行するアクティビティ名を変更します。

例:

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

11
これでもAndroid Studioで機能しない場合は、Androidアイコン(appという単語が付いたアイコン)をクリックして[構成の編集]を選択し、[全般]タブの[アクティビティ]セクションで[デフォルトのアクティビティを起動]
武器を

47

Android Studioを使用していて、以前に起動する別のアクティビティを選択した可能性があります。

をクリックしてRun > Edit configuration、[ デフォルトのアクティビティ起動]が選択されていることを確認します

デフォルトのアクティビティを起動


AndroidManifest.xmlにランチャーのインテントフィルターがない場合、これが解決策です。
Amir Fazwan、2015年

1
これはEclipseにも当てはまります。インテントフィルターを指定するだけでは十分ではありません。APKがユーザーによって直接実行される場合はインテントフィルターが使用されますが、APKがインストールされているEclipseによって実行される場合は、特定のアクティビティを起動しようとします。この特定のアクティビティは、「プロジェクトプロパティ」(プロジェクトを右クリック)-> [実行/デバッグ設定]で指定します。
Iker Jamardo Zugaza

これは素晴らしいです!ヒントをありがとう
Rafael Oliveira

30
 <application
    android:icon="@drawable/YOUR_ICON"    <!-- THIS ICON(IMAGE) WILL BE SHOWN IN YOUR APPS -->
    android:label="MY APP NAME " >    <!-- HERE LABEL(APP NAME) -->
    <activity
        android:name=".application's starting activity"  <!-- (.)dot means current dir, if your activity is in another package then give full package name ex: com.xxx.Activity  -->
        android:label="LABEL FOR ACTIVITY "
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

18

以下の指示に従ってください:

1 :) AndroidManifest.xmlファイルを開きます。

2 :)以下のようにメインアクティビティにしたいアクティビティコードに移動します。

SplashScreenをメインアクティビティにしたいなど

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
</activity>

3 :)次に、以下と同じアクティビティタグの間に以下のコードをコピーします。

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

また、新しく追加された行が他のアクティビティタグに添付されていないことも確認してください。


17

これは簡単に修正できます。

  • Launcherアクティビティへの変更は、デバッグ構成にも保存されます
  • に移動しRun > Debug Configurationsて設定を編集します。
  • [ デフォルトのアクティビティ実行]の下のIntellijにも同様の設定があり、この方法で設定を保存しなくなります。Run > Edit Configurations

14

それは簡単です。これをManifestファイルで行います。

<activity
    android:name="Your app name"
    android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>

1
<category android:name = "android.intent.category.HOME" />を削除する必要があります
Behrouz.M '18

2
<category android:name="android.intent.category.DEFAULT" />、それこそがここで機能するものです
1111161171159459134 '19

1
android.intent.category.HOMEデフォルトのランチャーが置き換えられるキオスクモードスタイルのアプリケーションで使用するためのものです。ランチャーを交換せずにこれを使用すると、SystemUIの起動時に、使用するランチャーを尋ねるプロンプトが表示されます。また、stackoverflow.com
questions / 22911156 /…

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

5

AndroidManifest.xmlファイルに移動して、以下のように追加します

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

次に、Androidプロジェクトを保存して実行します。


3

あなたはこのandroid:exported="true"ようなマニフェストファイルでアクティビティを起動するように追加します

 <activity
      android:name=".activities.activity.MainActivity"
      android:windowSoftInputMode="adjustPan"
      android:exported="true"/>
  <activity

このアクティビティのJavaファイルを開いて右クリックし、「メインアクティビティの実行」をクリックします。

または

この活動とプレスのオープンJavaファイルCtrl+ Shift+ F10


これはどのような影響がありますか?起動中ですか?
チアヨンカン

2

最近のプロジェクトで、AndroidManifest.xmlのデフォルトのアクティビティを次のように変更しました。

<activity android:name=".MyAppRuntimePermissions">
</activity>

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

Android Studio 3.6; これは壊れているようです。私はこのテクニックをサンプルアプリケーションで使用しましたが、この実際のアプリケーションで使用すると、うまくいきません。IDEは再び報告します。

アプリの実行エラー:デフォルトのアクティビティが見つかりません。

IDEは依然としてツールバーの「アプリの実行」スペースで構成エラーを示していました(このスクリーンショットの黄色の矢印)

「アプリの実行」構成のエラー

このエラーを修正するために、私はプロジェクトのいくつかの再構築を試み、最後にFile >> "Invalidate Cache / Restart"を試みました。これは助けにはなりませんでした。アプリケーションを実行するには、「構成を編集」して、デフォルトのアクティビティではなく特定のアクティビティをポイントする必要がありました。

構成の編集ダイアログボックス

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.