更改应用程序的启动活动

Kyl*_*yle 363 android android-activity

我已经创建了我的应用程序的肉和内脏,但我想添加一个不同的活动,这将是一个起点(一种登录屏幕).

情侣问题:

  • 1我对如何在活动之间切换有一个相当不错的处理(基于这篇文章:http://www.linux-mag.com/id/7498),但我不确定如何创建一个新的(与日食).

  • 2创建新活动后,如何将其设置为应用程序的默认活动? 我认为我可以只更改类的名称......但是有更优雅的方法来处理它(可能在其中AndroidManifest.xml)?

Nat*_*ann 623

是的,您使用该AndroidManifest.xml文件.实际上,您甚至可以在应用程序清单中指定多个启动器活动.要在启动器上显示活动,请将这些属性添加到清单中的活动:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

  • 对于那些不知道这篇文章所说的清单的人来说,它是项目根目录中的AndroidManifest.xml.在Eclipse中,您可以双击它并单击最右侧的选项卡直接编辑XML. (48认同)
  • 这是正确的答案,但我只是注意到一些奇怪的事情:如果您将启动活动更改为其他任何内容,并且原始启动的活动仍然存在,则SDK将无法再启动您的应用程序.不知何故,它引用了启动配置上的活动.因此,在执行上述更改后,您还需要转到"运行">"调试配置",找到项目的构建配置文件,选项卡"Android",并将启动的活动更改为"启动"下的默认或正确的活动:".不确定为什么我的默认设置被取消选择,但更改它的工作原理. (46认同)
  • @Kyle它会使该活动显示在启动器页面上,您可以使用此intent-filter进行多项活动,在主屏幕上为您提供多个图标. (4认同)
  • 十分感谢.因此,通过将intent-filter节点包含在其子节点中,可以在应用程序启动时加载第一个中的任何活动吗? (3认同)
  • 你提到这句话"你实际上甚至可以在应用程序清单中指定多个启动器活动".如果我们有多个活动,它们将首先启动 (2认同)

nee*_*j t 88

转到项目根文件夹中的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>
Run Code Online (Sandbox Code Playgroud)

  • 如果这仍然无法在Android Studio中运行,则必须单击android图标(带有单词app的那个)并选择"Edit configurations",然后在General选项卡的Activity部分选择"Launch default Activity" (11认同)

Zee*_*zer 45

如果您使用的是Android Studio,则可能之前已选择另一个要启动的活动.

单击Run > Edit configuration,然后确保选中" 启动默认活动".

启动默认活动


LMK*_*LMK 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>
Run Code Online (Sandbox Code Playgroud)


Bhu*_*aba 18

按照以下说明操作:

1 :)打开你的AndroidManifest.xml文件.

2 :)转到您想要进行主要活动的活动代码,如下所示.

比如我想将SplashScreen作为主要活动

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
</activity>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

并检查新添加的行是否与其他活动标记无关.


小智 15

这很容易解决.

  • 对Launcher活动的更改也存储在Debug配置中.
  • 转到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>
Run Code Online (Sandbox Code Playgroud)

  • `<category android:name ="android.intent.category.DEFAULT"/>`,这就是在这里工作的东西 (2认同)

Nul*_*ion 7

 <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
Run Code Online (Sandbox Code Playgroud)


小智 5

只需转到您的 AndroidManifest.xml 文件并添加如下内容

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

然后保存并运行您的 android 项目。


Pra*_*eep 5

您添加了您想要 android:exported="true"在清单文件中启动活动的内容,例如

 <activity
      android:name=".activities.activity.MainActivity"
      android:windowSoftInputMode="adjustPan"
      android:exported="true"/>
  <activity
Run Code Online (Sandbox Code Playgroud)

打开此活动的 java 文件,然后右键单击,然后单击运行“主活动”

或者

打开此活动的 java 文件并按Ctrl+ Shift+ F10