Zmiana aktywności startowej aplikacji

Stworzyłem mięso i flaki mojej aplikacji, ale chcę dodać inne działanie ,które będzie punktem wyjścia (rodzaj ekranu logowania).

Kilka pytań:

  • 1 mam dość przyzwoity uchwyt, jak przełączać się między działaniami (na podstawie tego artykułu: http://www.linux-mag.com/id/7498 ) ale nie jestem pewien Jak zrobić nowy (z eclipse) .

  • 2 Gdy mam nową aktywność utworzony, Jak mogę ustawić ją jako domyślną aktywność mojej aplikacji? przypuszczam, że mógłbym po prostu zmienić nazwę klas...ale czy jest jakiś bardziej elegancki sposób, aby sobie z tym poradzić (może w ramach AndroidManifest.xml)?

Author: Brian, 2010-09-02

12 answers

Tak, używasz pliku AndroidManifest.xml. Możesz nawet mieć więcej niż jedną aktywność uruchamiania określoną w manifeście aplikacji. Aby wykonać aktywność widoczną na launcherze, dodaj te atrybuty do swojej aktywności w manifeście:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
 697
Author: Nathan Schwermann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-01 21:53:18

Przejdź do AndroidManifest.xml w folderze głównym projektu i zmień nazwę działania, które chcesz wykonać jako pierwsze.

Przykład:

<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>
 103
Author: neeraj t,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-01 21:36:27

Jeśli używasz Android Studio i być może wcześniej wybrałeś inną aktywność do uruchomienia.

Kliknij na Run > Edit configuration, a następnie upewnij się, że wybrano Uruchom domyślną aktywność.

Uruchom domyślną aktywność

 50
Author: Zeezer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-27 16:00:44
 <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>
 33
Author: LMK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-05 07:08:24

Postępuj zgodnie z poniższymi instrukcjami:

1:) Otwórz plik AndroidManifest.xml.

2:) Przejdź do kodu aktywności, który chcesz zrobić swoją główną aktywność, jak poniżej.

Takie jak chcę zrobić SplashScreen jako główną aktywność

<activity
    android:name=".SplashScreen"
    android:screenOrientation="sensorPortrait"
    android:label="City Retails">
</activity>

3:) Teraz skopiuj poniższy kod pomiędzy znacznikami aktywności tak samo jak:

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

I sprawdź, czy nowo dodane linie nie są dołączane do innych znaczników aktywności.

 19
Author: Bhunnu Baba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-12 19:13:23

jest to łatwe do naprawienia.

  • zmiany w aktywności Launchera są również przechowywane w konfiguracji debugowania .
  • przejdź do Run > Debug Configurations i edytuj ustawienie.
  • istnieje również podobne ustawienie w Intellij Pod Run > Edit Configurations select Run default Activity i nie będzie już zapisywać ustawienia w ten sposób.
 17
Author: user3154790,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-27 16:47:49

To proste. Zrób to w swoim pliku 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>
 14
Author: Rohit Sharma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-27 16:01:05
 <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 7
Author: Null Pointer Exception,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-06 09:51:34

Idź na AndroidManifest.plik xml i dodaj jak poniżej

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

Następnie zapisz i uruchom swój projekt android.

 5
Author: user3206168,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-02 00:23:05

Dodajesz to chcesz uruchomić aktywność android:exported="true" w pliku manifestu jak

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

Otwórz plik java tego działania i kliknij prawym przyciskiem myszy, a następnie kliknij Uruchom 'main Activity'

Lub

Otwórz plik java tej czynności i naciśnij Ctrl+Shift+F10 .

 4
Author: Prabh deep,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-18 19:45:08

W ostatnim projekcie zmieniłem domyślną aktywność w AndroidManifest.XML z:

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

W Android Studio 3.6; to wydaje się zepsute. Używałem tej techniki w przykładowych aplikacjach, ale kiedy używam jej w tej aplikacji w świecie rzeczywistym, spada płasko. IDE po raz kolejny donosi:

Błąd uruchamiania aplikacji: domyślna aktywność nie została znaleziona.

IDE nadal pokazywał błąd konfiguracji w przestrzeni "uruchom aplikację" na pasku narzędzi (żółta strzałka w tym screenshot)

Błąd w konfiguracji "uruchom aplikację"

Aby naprawić ten błąd próbowałem kilku przebudów projektu, a na koniec File > > "Invalidate Cache/Restart" . To nie pomogło. Aby uruchomić aplikację musiałem "Edytuj konfiguracje" i wskazać konkretną aktywność zamiast domyślnej aktywności:

Okno dialogowe Edytuj konfigurację

 3
Author: martshal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-28 21:21:31

W AndroidManifest.xml

Zmieniłem tutaj pierwszą aktywność na MainActivity4 zamiast Mainactivity4:

Przed:

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

Po:

    <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"/>
 0
Author: Shady,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-10 22:43:40