Qué es un activity en Android Studio?

Una Activity es un componente de la aplicación que contiene una pantalla con la que los usuarios pueden interactuar para realizar una acción, como marcar un número telefónico, tomar una foto, enviar un correo electrónico o ver un mapa. A cada actividad se le asigna una ventana en la que se puede dibujar su interfaz de usuario. La ventana generalmente abarca toda la pantalla, pero en ocasiones puede ser más pequeña que esta y quedar “flotando” encima de otras ventanas.

La traducción de la palabra activity  del inglés literalmente significa actividad. Por lo tanto, un activity es cada una de las pantallas o vistas que forman una aplicación.

Añadir un nuevo activity

Podemos añadir un nuevo activity haciendo click derecho sobre el paquete que deseemos, New > Java Class, como vemos en la figura anterior. Esto creará un nuevo archivo.java desde el cual podemos manejar un nuevo activity.

Aquí vemos un código de ejemplo. Nos encontramos con la siguiente estructura de un archivo NuevoActivity.java:

package faqs.androidstudio.miapp;
import android.os.Bundle;
import android.app.Activity;
 
public class NuevoActivity extends Activity {
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.nuevo_activity);
 }
}

MainActivity.java

El MainActivity.java es la actividad principal de nuestra aplicación, en esa clase definiremos los métodos y llamadas a otras clases, así como el funcionamiento del layout“nuevo_activity”. No es necesario que tenga ese nombre en concreto, podemos llamarle como queramos, configurando siempre antes com actividad principal la clase que seleccionemos.

Cómo iniciar una actividad

Puedes iniciar otra actividad al llamar a startActivity(), y pasarle una Intent que describa la actividad que quieres iniciar. La intent especifica la actividad exacta que quieres iniciar o describe el tipo de acción que quieres realizar (y el sistema selecciona la actividad adecuada para ti, que incluso puede ser de otra aplicación). Una intent también puede contener pequeñas cantidades de datos que utilizará la actividad que se inicie.

Cuando trabajes en tu propia aplicación, con frecuencia necesitarás iniciar una actividad conocida. Puedes hacerlo al crear una intent que defina de forma explícita la actividad que quieres iniciar, y para eso deberás usar el nombre de clase. Por ejemplo, aquí se muestra la forma en que una actividad inicia otra llamada SignInActivity:

Intent intent = new Intent(this, SignInActivity.class);
startActivity(intent);

Iniciar una actividad para obtener un resultado

Algunas veces, querrás recibir un resultado a partir de la actividad que inicias. En ese caso, inicia la actividad llamando a startActivityForResult() (en lugar de startActivity()). Para luego recibir el resultado de la siguiente actividad, implementa el método callback onActivityResult(). Cuando finaliza la siguiente actividad, muestra un resultado en una Intent a tu método onActivityResult().

Por ejemplo, quizá quieras que el usuario seleccione uno de sus contactos para que tu actividad pueda hacer algo con la información de ese contacto. Aquí te mostramos cómo puedes crear esa intent y manipular el resultado:

private void pickContact() {
    // Create an intent to "pick" a contact, as defined by the content provider URI
    Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
    startActivityForResult(intent, PICK_CONTACT_REQUEST);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // If the request went well (OK) and the request was PICK_CONTACT_REQUEST
    if (resultCode == Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) {
        // Perform a query to the contact's content provider for the contact's name
        Cursor cursor = getContentResolver().query(data.getData(),
        new String[] {Contacts.DISPLAY_NAME}, null, null, null);
        if (cursor.moveToFirst()) { // True if the cursor is not empty
            int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME);
            String name = cursor.getString(columnIndex);
            // Do something with the selected contact's name...
        }
    }
}

fuente

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *