更改应用程序的启动活动

我已经创建了我的应用程序的肉和内脏,但我想添加一个不同的活动,将作为起点(类似于登录屏幕)。

几个问题:

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

  • 一旦我有一个新的活动创建,我怎么能把它设置为我的应用程序的默认活动?我想我可以更改类的名称…但是否有更优雅的方式来处理它(可能在AndroidManifest.xml中)?

671548 次浏览

是的,你使用AndroidManifest.xml文件。实际上,您甚至可以在应用程序清单中指定多个启动程序活动。为了让一个活动在启动器上可见,你在manifest中添加了这些属性到你的活动:

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

转到项目根文件夹中的AndroidManifest.xml,并更改您想要首先执行的Activity名称。

例子:

<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>
 <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>

这很简单。在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>

这很容易解决。

  • 对Launcher活动的更改也存储在调试配置中。
  • 转到Run > Debug Configurations并编辑设置。
  • Run > Edit Configurations select 运行default Activity下的Intellij中也有类似的设置,它将不再以这种方式保存设置。

只需打开AndroidManifest.xml文件并添加如下内容

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

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

如果你正在使用Android Studio并且你之前可能已经选择另一个活动来启动。

单击Run > Edit configuration,然后确保选择了启动默认活动

启动默认活动

请遵循以下指示:

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>

还要检查新添加的行是否附加了其他活动标记。

你添加这个你想要启动活动 android:exported="true"在manifest文件中,如

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

打开此活动的java文件,右键单击,然后单击Run 'main activity '

打开该活动的java文件,按Ctrl+转变+F10

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

在最近的一个项目中,我改变了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仍然在工具栏的“运行应用程序”区域显示了一个配置错误(截图中的黄色箭头)

Error in &;run app < / >

为了纠正这个错误,我已经尝试了几次重建项目,最终文件>>“无效缓存/重新启动”。这并没有帮助。要运行应用程序,我必须“编辑配置”并指向特定的活动,而不是默认活动:

编辑配置对话框

在AndroidManifest.xml

我在这里把第一个活动改为MainActivity4,而不是MainActivity:

之前:

    <activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity2" />
<activity android:name=".MainActivity3" />
<activity android:name=".MainActivity4" />
<activity android:name=".MainActivity5" />
<activity android:name=".MainActivity6"/>

后:

    <activity android:name=".MainActivity" />
<activity android:name=".MainActivity2" />
<activity android:name=".MainActivity3" />
<activity android:name=".MainActivity4" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity5" />
<activity android:name=".MainActivity6"/>
对于任何在调试\AndroidManifest.xml文件中出现错误的人,请确保您包含了标签! “& lt;活动android: name =“.MainActivity>“< / >强

例如:

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