En una aplicación de Android, ¿cómo se inicia una nueva actividad (GUI) cuando se hace clic en un botón de otra actividad y cómo se transfieren datos entre estas dos actividades?
627
En una aplicación de Android, ¿cómo se inicia una nueva actividad (GUI) cuando se hace clic en un botón de otra actividad y cómo se transfieren datos entre estas dos actividades?
Fácil.
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value); //Optional parameters
CurrentActivity.this.startActivity(myIntent);
Los extras se recuperan en el otro lado a través de:
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it's a string you stored.
}
No olvide agregar su nueva actividad en AndroidManifest.xml:
<activity android:label="@string/app_name" android:name="NextActivity"/>
CurrentActivity.this.startActivity(myIntent)
ystartActivity(myIntent)
?Cree una intención para una actividad ViewPerson y pase el PersonID (para una búsqueda en la base de datos, por ejemplo).
Luego, en ViewPerson Activity, puede obtener el paquete de datos adicionales, asegúrese de que no sea nulo (en caso de que a veces no pase datos), luego obtenga los datos.
Ahora, si necesita compartir datos entre dos actividades, también puede tener un Singleton global.
Luego llámalo en cualquier actividad:
fuente
Las respuestas actuales son excelentes, pero se necesita una respuesta más integral para los principiantes. Hay 3 formas diferentes de comenzar una nueva actividad en Android, y todas usan la
Intent
clase; Intención | Desarrolladores de Android .onClick
atributo del Botón. (Principiante)OnClickListener()
vía a través de una clase anónima. (Intermedio)switch
declaración. (Pro)Aquí está el enlace a mi ejemplo si quieres seguirlo:
1. Usando el
onClick
atributo del Botón. (Principiante)Los botones tienen un
onClick
atributo que se encuentra dentro del archivo .xml:En clase Java:
Ventaja : Fácil de hacer sobre la marcha, modular, y puede configurar fácilmente varios correos
onClick
electrónicos con la misma intención.Desventaja : difícil legibilidad al revisar.
2. Asignación de un
OnClickListener()
vía a través de una clase anónima. (Intermedio)Esto es cuando establece un separado
setOnClickListener()
para cada unobutton
y anula cadaonClick()
con su propia intención.En clase Java:
Ventaja : fácil de hacer sobre la marcha.
Desventaja : Habrá muchas clases anónimas que dificultarán la legibilidad al revisar.
3. Método de interfaz de toda la actividad utilizando el
switch
declaración. (Pro)Esto es cuando usa una
switch
declaración para sus botones dentro delonClick()
método para administrar todos los botones de la Actividad.En clase Java:
Ventaja : administración fácil de botones porque todos los intentos de botón se registran en un solo
onClick()
métodoPara la segunda parte de la pregunta, pasar datos, consulte ¿Cómo paso datos entre actividades en la aplicación de Android?
fuente
Cuando el usuario hace clic en el botón, directamente dentro del XML así:
Usando el atributo
android:onClick
declaramos el nombre del método que debe estar presente en la actividad principal. Así que tengo que crear este método dentro de nuestra actividad así:fuente
fuente
fuente
Emmanuel
Creo que la información adicional debe colocarse antes de comenzar la actividad; de lo contrario, los datos aún no estarán disponibles si está accediendo a ella en el método onCreate de NextActivity.
fuente
Desde la actividad de envío, intente el siguiente código
Desde la actividad receptora intente el siguiente código:
Luego solo agregue el siguiente código al archivo AndroidManifest.xml
fuente
fuente
Prueba este método simple.
fuente
Puedes probar este código:
fuente
La manera de comenzar nuevas actividades es difundir una intención, y hay un tipo específico de intención que puede usar para pasar datos de una actividad a otra. Mi recomendación es que revises los documentos de desarrollador de Android relacionados con las intenciones ; Es una gran cantidad de información sobre el tema, y también tiene ejemplos.
fuente
Kotlin
Primera actividad
Segunda actividad
Sugerencia
Siempre coloque las claves en un archivo constante para una forma más administrada.
fuente
Iniciar una actividad desde otra actividad es un escenario muy común entre las aplicaciones de Android.
Para comenzar una actividad, necesita un objeto Intent .
¿Cómo crear objetos de intención?
Un objeto de intención toma dos parámetros en su constructor
Entonces, por ejemplo, si tiene dos actividades, diga
HomeActivity
yDetailActivity
y quiera comenzarDetailActivity
desdeHomeActivity
(HomeActivity -> DetailActivity).Aquí está el fragmento de código que muestra cómo iniciar DetailActivity desde
Y ya terminaste.
fuente
Inicie otra actividad desde esta actividad y también puede pasar parámetros a través del Objeto de paquete.
Recuperar datos en otra actividad (YourActivity)
fuente
Implemente la interfaz View.OnClickListener y anule el método onClick.
fuente
Aunque ya se han proporcionado las respuestas adecuadas, estoy aquí para buscar la respuesta en el idioma Kotlin. Esta pregunta no se refiere al idioma específico, por lo que agrego el código para realizar esta tarea en el idioma Kotlin.
Así es como se hace esto en Kotlin para andorid
fuente
La forma más sencilla de abrir actividad al hacer clic en el botón es:
onclick
función.MainActivity.java
SecondActivity.java
AndroidManifest.xml (solo agregue este bloque de código al existente)
fuente
Tome el botón en xml primero.
Hacer lista de botón.
fuente
Cuando se hace clic en el botón:
Para recibir los datos adicionales de
NextActivity.class
:fuente
Escribe el código en tu primera actividad.
En secondActivity.class
fuente
Coloque el widget de botón en xml como a continuación
Después de eso, inicialice y maneje el oyente de clics en la Actividad como a continuación.
En Actividad en Crear método:
fuente