我已经创建了应用程序的内容,但是我想添加一个不同的活动作为起点(类似于登录屏幕)。
几个问题:
1对于如何在活动之间进行切换,我有相当不错的了解(根据本文:http : //www.linux-mag.com/id/7498),但是我不确定如何创建一个新活动(蚀)。
2创建新活动后,如何将其设置为应用程序的默认活动? 我想我可以更改类的名称...但是有没有更优雅的方式来处理(也许在
AndroidManifest.xml
)呢?
我已经创建了应用程序的内容,但是我想添加一个不同的活动作为起点(类似于登录屏幕)。
几个问题:
1对于如何在活动之间进行切换,我有相当不错的了解(根据本文:http : //www.linux-mag.com/id/7498),但是我不确定如何创建一个新活动(蚀)。
2创建新活动后,如何将其设置为应用程序的默认活动? 我想我可以更改类的名称...但是有没有更优雅的方式来处理(也许在AndroidManifest.xml
)呢?
Answers:
是的,您使用该AndroidManifest.xml
文件。实际上,您甚至可以在应用程序清单中指定多个启动程序活动。要在启动器上显示活动,请将以下属性添加到清单中的活动中:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
转到项目根文件夹中的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>
如果您使用的是Android Studio,并且您先前可能已经选择了另一个要启动的活动。
单击Run > Edit configuration
,然后确保已选择“ 启动默认活动”。
<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>
请遵循以下说明:
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>
并检查新添加的行是否未附加其他活动代码。
这很简单。在您的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>
<category android:name="android.intent.category.DEFAULT" />
,那就是在这里可以正常工作的东西
android.intent.category.HOME
适用于Kiosk模式样式的应用程序,其中替换了默认启动器。在不替换启动器的情况下使用它会在SystemUI启动期间提示您使用哪个启动器。另请参阅:stackoverflow.com/questions/22911156/...
您android:exported="true"
在清单文件中添加要启动活动的内容
,例如
<activity
android:name=".activities.activity.MainActivity"
android:windowSoftInputMode="adjustPan"
android:exported="true"/>
<activity
打开此活动的Java文件,然后右键单击,然后单击“运行'主活动”
打开此活动的Java文件,然后按Ctrl+ Shift+ F10。
在最近的项目中,我使用以下命令更改了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”。这没有帮助。要运行该应用程序,我必须“编辑配置”并指向特定活动而不是默认活动: