2010-09-02 7 views
274

Utworzono mięso i odwagę mojej aplikacji, ale chcę dodać inną aktywność, która będzie punktem początkowym (rodzaj ekranu logowania).Zmiana aktywności początkowej aplikacji

kilka pytań:

  • 1 Mam dość przyzwoity uchwyt, w jaki sposób przełączać się między działaniami (na podstawie tego artykułu: http://www.linux-mag.com/id/7498), ale nie jestem pewien jak go o utworzenie nowego (z zaćmieniem).

  • 2 Po utworzeniu nowej aktywności, , jak ustawić ją jako domyślną aktywność mojej aplikacji? Przypuszczam, że mogłem po prostu zmienić nazwę zajęć ... ale czy istnieje bardziej elegancki sposób na poradzenie sobie z tym (może w ramach AndroidManifest.xml)?

Odpowiedz

487

Tak, używasz pliku AndroidManifest.xml. W twoim manifeście aplikacji możesz nawet mieć więcej niż jedno działanie programu uruchamiającego. Aby zobaczyć na aktywność wyrzutni dodać 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> 
+35

Dla każdego, kto nie wie, o czym jest ten manifest, o którym mówi ten post, jest to AndroidManifest.xml w katalogu głównym projektu. W Eclipse możesz dwukrotnie kliknąć i kliknąć kartę po prawej stronie, aby bezpośrednio edytować XML. –

+3

wielkie dzięki. Czy włączenie tego węzła filtru intencyjnego do jego węzłów potomnych powoduje, że niezależnie od tego, jakie działanie jest uruchamiane w pierwszej aplikacji podczas uruchamiania aplikacji? – Kyle

+4

@Kyle sprawi, że ta aktywność pojawi się na stronie uruchamiania, możesz mieć wiele działań z tym filtrem intencyjnym, dając wiele ikon na ekranie głównym. – schwiz

63

Przejdź do AndroidManifest.xml w folderze głównym projektu i zmienić nazwę działalności, które chcesz wykonać w pierwszej kolejności.

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

jeśli z tym nadal nie działa w Android Studio, musisz kliknąć ikonę android (tę z aplikacją słowo) i wybierz "Edytuj konfiguracje", a następnie w zakładce Ogólne w sekcji Aktywność wybierz "Uruchom domyślną aktywność" –

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

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

powinieneś usunąć

+1

'', to jest właśnie to, co tu działa – 1111161171159459134

+1

'android.intent.category.HOME' jest do użytku w aplikacji w stylu Kiosk, w której domyślny launcher jest zamieniany. Użycie tego bez zamiany Launchera spowoduje pojawienie się podpowiedzi podczas uruchamiania SystemUI z pytaniem, którego launchera użyć. Zobacz także: http://stackoverflow.com/questions/22911156/android-open-source-setting-the-default-launcher – CJBS

12

Jest to łatwe do naprawienia.

  • Zmiany aktywności Launcher są również przechowywane w konfiguracji Debug.
  • Przejdź do Run > Debug Configurations i edytuj ustawienie.
  • Istnieje również podobne ustawienie w Intellij pod Run > Edit Configurations wybierz Uruchom domyślnie działanie i nie będzie już zapisać ustawienia w ten sposób.
3

Wystarczy przejść do pliku AndroidManifest.xml i dodać jak poniżej

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

następnie zapisać i uruchomić android projekt.

37

Jeśli używasz Androida Studio i możesz wcześniej wybrać opcję , aby rozpocząć inną aktywność.

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

Launch default Activity

+0

jeśli w AndroidManifest.xml nie ma filtra zamiaru dla programu uruchamiającego, to jest rozwiązanie. –

+0

@AmirFazwan Nie, zawsze możesz zmienić manifest –

+0

Dotyczy to również Eclipse. Samo określenie filtrów intencji nie jest wystarczające. Filtry intencji są używane, jeśli plik APK jest wykonywany bezpośrednio przez użytkownika, ale jeśli plik APK jest wykonywany przez Eclipse, który instaluje go, próbuje uruchomić określone działanie. Ta konkretna aktywność jest określona w "Właściwościach projektu" (prawy przycisk myszy na projekcie) -> Ustawienia uruchamiania/debugowania. –

11

Dołącz do instrukcji poniżej:

1 :) Otwórz plik AndroidManifest.xml.

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

takie jak chcę, aby ekran powitalny jako główny

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

3 :) Teraz skopiuj poniższy kod między znacznikami aktywności 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> 

a także sprawdzić, czy nowo dodane linie nie są dołączone do innych znaczników aktywności.

Powiązane problemy