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

几个问题:

1我有一个相当不错的处理如何在活动之间切换(基于这篇文章:http://www.linux-mag.com/id/7498),但我不确定如何去创建一个新的(eclipse)。 一旦我创建了一个新的活动,我如何将它设置为我的应用程序的默认活动?我想我可以改一下课程的名字……但是否有更优雅的方式来处理(可能在AndroidManifest.xml)?


当前回答

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

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

其他回答

是的,你使用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>

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

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

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

这很简单。在您的清单文件中执行此操作。

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