Зміна початкової активності програми


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.
Austyn Mahoney

3
щиро дякую. Отже, включивши цей вузол фільтрування намірів у його дочірні вузли, що робить будь-яку активність, яку він перший завантажує при запуску програми?
Кайл

4
@Kyle зробить, що ця активність з’явиться на сторінці запуску, ви можете виконати кілька дій із цим фільтром намірів, що дає вам декілька піктограм на головному екрані.
Натан Шверман

3
Ви згадуєте цей рядок "у нас може бути навіть більше однієї активності запуску, зазначеної у вашому маніфесті програми". Яка діяльність буде вперше запущена, якщо у нас є більше однієї активності
Tofeeq Ahmad

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 (той, який містить слово додаток) і вибрати "Редагувати конфігурації", а потім на вкладці Загальні, в розділі Діяльність виберіть "Запустити активність за замовчуванням"
Зброя X

47

Якщо ви використовуєте Android Studio і, можливо, раніше ви вибрали іншу діяльність для запуску.

Натисніть на Run > Edit configuration та переконайтесь, що вибрано Запуск активності за замовчуванням .

Запустіть активність за замовчуванням


якщо в AndroidManifest.xml відсутній фільтр намірів для запуску, це рішення.
Амір Фацван

1
Це стосується і Eclipse. Достатньо лише вказати фільтри намірів. Фільтри намірів використовуються, якщо APK виконується безпосередньо користувачем, але якщо APK виконується Eclipse, який встановлює його, намагається запустити конкретну діяльність. Ця конкретна діяльність вказана в "Властивості проекту" (клацніть правою кнопкою миші на проект) -> Налаштування / Налаштування налагодження.
Ікер Джамардо Зугаза

Це дивно! Дякую за підказку
Рафаель Олівейра

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

Це легко виправити.

  • Зміни активності запуску також зберігаються у конфігурації налагодження .
  • Перейдіть 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
вам слід видалити <категорію android: name = "android.intent.category.HOME" />
Behrouz.M

2
<category android:name="android.intent.category.DEFAULT" />, це саме те, що тут працює
1111161171159459134

1
android.intent.category.HOMEпризначений для використання в додатку в режимі кіоску, де замінюється запуск за замовчуванням. Використання цього пункту без заміни Launcher призведе до того, що під час запуску SystemUI з'явиться запит, який запуску використовувати. Також дивіться: stackoverflow.com/questions/22911156 / ...
CJBS


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.


Який ефект це має? Просто запуск?
chia yongkang

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 все ще показала помилку конфігурації у просторі "запустити додаток" на панелі інструментів (жовта стрілка на цьому знімку екрана)

Помилка в конфігурації "запустити додаток"

Щоб виправити цю помилку, я спробував декілька перебудов проекту та нарешті Файл >> "Недійсний кеш / перезапуск" . Це не допомогло. Щоб запустити програму, мені довелося «Змінити конфігурації» та вказати на конкретну діяльність замість активності за замовчуванням:

Редагування діалогового вікна конфігурації

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.