2010-09-02 19 views
274

He creado la carne y las agallas de mi aplicación, pero quiero agregar una actividad diferente que será el punto de partida (una especie de pantalla de inicio de sesión).Cambiar la actividad de inicio de la aplicación

preguntas: Pareja

  • 1 tengo un mango bastante decente sobre cómo cambiar entre actividades (sobre la base de este artículo: http://www.linux-mag.com/id/7498), pero no estoy seguro de cómo hacer para crear uno nuevo (con eclipse).

  • 2 Una vez que tengo una nueva actividad creada, ¿cómo puedo configurarla como la actividad predeterminada de mi aplicación? Supongo que podría cambiar el nombre de las clases ... pero ¿hay una manera más elegante de manejar eso (tal vez dentro del AndroidManifest.xml)?

Respuesta

487

Sí, utiliza el archivo AndroidManifest.xml. Incluso puede tener más de una actividad de iniciador especificada en el manifiesto de su aplicación. Para hacer una actividad observado en el lanzador de agregar estos atributos a su actividad en el manifiesto:

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

Para cualquiera que no sepa de qué manifiesto está hablando esta publicación, es el AndroidManifest.xml en la raíz de su proyecto. En Eclipse, puede hacer doble clic en él y hacer clic en la pestaña de la derecha más lejana para editar el XML directamente. –

+3

Gracias. ¿Entonces al incluir ese nodo de filtro de intención con sus nodos secundarios, eso hace que cualquier actividad que esté en el primero se cargue cuando se inicia la aplicación? – Kyle

+4

@Kyle hará que esa actividad aparezca en la página del iniciador, puede tener múltiples actividades con este filtro de intención que le da múltiples iconos en la pantalla de inicio. – schwiz

63

Ir a AndroidManifest.xml en la carpeta raíz de su proyecto y cambiar el nombre de la actividad que desea ejecutar en primer lugar.

Ejemplo:

<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

si con esto todavía no funciona en Android Studio tiene que hacer clic en el ícono de Android (el de la palabra aplicación) y seleccionar "Editar configuraciones", luego en la pestaña General, en la sección Actividad seleccionar "Iniciar actividad predeterminada" –

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

Es simple. Haga esto, en su archivo 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

deberías eliminar

+1

'', eso es lo que funciona aquí – 1111161171159459134

+1

'android.intent.category.HOME' se usa en una aplicación de estilo Kiosk-mode, donde se reemplaza el iniciador predeterminado. El uso de este sin reemplazar el Iniciador dará como resultado un aviso al inicio de SystemUI preguntando qué iniciador usar. También vea: http://stackoverflow.com/questions/22911156/android-open-source-setting-the-default-launcher – CJBS

12

Esto es fácil de arreglar.

  • Los cambios en la actividad Launcher también se almacenan en la configuración depuración.
  • Vaya a Run > Debug Configurations y edite la configuración.
  • También hay una configuración similar en Intellij bajo Run > Edit Configurations seleccionar de ejecución predeterminado Actividad y ya no va a guardar la configuración de esta manera.
3

basta con acceder a su archivo AndroidManifest.xml y añadir, como a continuación

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

continuación, guardar y ejecutar su proyecto androide.

37

Si está utilizando Android Studio y es posible que haya seleccionado previamente otra actividad para iniciarse.

Haga clic en Run > Edit configuration y luego asegúrese de que La actividad predeterminada de inicio de sesión está seleccionada.

Launch default Activity

+0

si en AndroidManifest.xml no hay un filtro de intención para el iniciador, esta es la solución. –

+0

@AmirFazwan No, siempre puede cambiar el manifiesto –

+0

Esto también es aplicable para Eclipse. Solo especificar los filtros de intención no es suficiente. Los filtros de intención se utilizan si el APK se ejecuta directamente por el usuario, pero si el APK lo ejecuta Eclipse, que lo instala, intenta lanzar una actividad específica. Esta actividad específica se especifica en "Propiedades del proyecto" (haga clic con el botón derecho en el proyecto) -> Configuración de ejecución/depuración. –

11

Siga a continuación las instrucciones:

1 :) abrir su archivo AndroidManifest.xml.

2 :) Vaya al código de actividad que desea que su actividad principal sea la siguiente.

como quiero hacer SplashScreen como actividad principal

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

3 :) Ahora copia el código de abajo en medio de etiquetas de actividad del mismo que:

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

y también comprobar que la nueva las líneas adicionales no están asociadas con otras etiquetas de actividad.

Cuestiones relacionadas