2010-09-02 12 views
274

Ho creato la carne e l'anima della mia applicazione ma voglio aggiungere un'attività diversa che sarà il punto di partenza (una specie di schermata di accesso).Cambia l'attività iniziale dell'applicazione

domande Coppia:

  • 1 Ho un manico abbastanza decente su come passare tra le attività (sulla base di questo articolo: http://www.linux-mag.com/id/7498), ma non sono sicuro come fare per crearne uno nuovo (con eclissi).

  • 2 Una volta creata una nuova attività, , come posso impostarla come attività predefinita della mia applicazione? Suppongo che potrei semplicemente cambiare il nome delle classi ... ma c'è un modo più elegante di gestirle (forse all'interno dello AndroidManifest.xml)?

risposta

487

Sì, si utilizza il file AndroidManifest.xml. In realtà puoi persino avere più di una attività di avvio specificata nel tuo manifest dell'applicazione. Per rendere un'attività visto nel programma di avvio si aggiungono questi attributi per la vostra attività nel manifesto:

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

Per chiunque non sappia di che cosa sta parlando il manifest di questo post, è AndroidManifest.xml nella radice del progetto. In Eclipse puoi fare doppio clic su di esso e fare clic sulla scheda all'estrema destra per modificare direttamente l'XML. –

+3

grazie mille. Quindi, includendo il nodo intent-filter con i suoi nodi figli, questo fa sì che qualunque attività si trovi nel primo ad essere caricata all'avvio dell'applicazione? – Kyle

+4

@Kyle farà apparire quell'attività nella pagina di avvio, puoi avere più attività con questo filtro intent che ti dà più icone sulla schermata iniziale. – schwiz

63

Vai AndroidManifest.xml nella cartella principale del progetto e cambiare il nome di attività che si desidera eseguire per primo.

Esempio:

<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

se con questo non funziona ancora in Android Studio devi fare clic sull'icona di Android (quella con la parola app) e selezionare "Modifica configurazioni", quindi nella scheda Generale, sezione Attività selezionare "Avvia attività di default" –

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

E 'semplice. Fai questo, nel tuo file 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

si dovrebbe rimuovere

+1

'', questa è la cosa che funziona qui – 1111161171159459134

+1

'android.intent.category.HOME' deve essere utilizzato in un'applicazione in stile modalità Kiosk, in cui viene sostituito il programma di avvio predefinito. L'utilizzo di questo senza sostituire il Launcher comporterà un prompt durante l'avvio di SystemUI che richiede quale launcher utilizzare. Vedi anche: http://stackoverflow.com/questions/22911156/android-open-source-setting-the-default-launcher – CJBS

12

Questo è facile da risolvere.

  • Modifiche all'attività di avvio sono anche memorizzati nella configurazione Debug.
  • Passare a Run > Debug Configurations e modificare l'impostazione.
  • C'è anche un ambiente simile a Intellij sotto Run > Edit Configurations selezionare Esegui predefinito attività e non sarà più salvare l'impostazione in questo modo.
3

Basta andare al file AndroidManifest.xml e aggiungere come qui di seguito

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

quindi salvare ed eseguire il progetto Android.

37

Se si utilizza Android Studio e si potrebbe aver precedentemente selezionato un'altra attività per l'avvio.

Fare clic su Run > Edit configuration e quindi assicurarsi che Avvio attività predefinita sia selezionato.

Launch default Activity

+0

se in AndroidManifest.xml non esiste un filtro intent per launcher, questa è la soluzione. –

+0

@AmirFazwan No, è sempre possibile modificare il manifest –

+0

Questo vale anche per Eclipse. Basta specificare i filtri di intent non è abbastanza. I filtri intent vengono utilizzati se l'APK viene eseguito direttamente dall'utente, ma se l'APK viene eseguito da Eclipse, che lo installa, tenta di avviare un'attività specifica. Questa specifica attività è specificata in "Proprietà del progetto" (tasto destro del mouse sul progetto) -> Impostazioni Esegui/Debug. –

11

Seguire al di sotto di istruzioni:

1 :) Aprire il file AndroidManifest.xml.

2 :) Andare al codice attività che si desidera rendere l'attività principale come di seguito.

come voglio fare SplashScreen come attività principale

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

3 :) Ora copiare il codice qui sotto tra i tag di attività stessa:

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

e anche controllare che di recente le linee aggiunte non sono associate ad altri tag di attività.