En este tutorial vamos a explicar como iniciar una nueva activity desde otra, presionando un botón. En Android Studio.
Primero necesitamos tener dos activity distintas.
NOTA: Para crear una nueva activity das click derecho en el panel izquierdo donde están las carpetas de la aplicación. Seleccionas nuevo > activity y ahí seleccionas el tipo, comúnmente es empity activity.
Estas son las dos activitys que usaremos:
La primera es MainActivity.java que es donde vamos a llamar a la segunda ( Segunda.java).
En la activity_main.xml, creamos un botón y le damos una id al botón para identificarlo, el código xml es el siguiente:
<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Iniciar Activity" />
Lo siguiente es irnos a MainActivity.java, aquí vamos hacer lo siguiente.
Primero declaramos un botón como se muestra a continuación:
private Button mBoton;
Es recomendable obtener el contexto de la activity en una variable, de esta forma se evitan errores. Asi que vamos a crear una variable Contexto, con el Contexto de esta Activity.
private Context mCont=this;
Luego asociamos el botón del xml con el botón recién creado en java, mediante la id del botón. Esto puede ser dentro de el método OnCrete.
mBoton = (Button) findViewById(R.id.id_boton);
Ahora ya podemos trabajar con el botón, le añadimos un onClickListener, para así ejecutar una acción cuando el botón es presionado.
mBoton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Acción a realizar cuando se presione el botón } }); }
Ahora si ya tenemos lo necesario para iniciar la segunda activity, presionando el botón.
Esto lo haremos mediante un intent.
Dentro del onClickListener, añadimos el siguiente código:
Intent intent = new Intent(mCont, Segunda.class); startActivity(intent);
En la primer linea creamos una variable intent, y le agregamos el contexto de la MainActivity. Luego ponemos el nombre de la activity a iniciar, en este caso es “Segunda” y le agregamos “.class”.
En l siguiente línea usamos Start activity para iniciar la activity señalada.
Y eso es todo, aquí ya al presionar el botón activamos la segunda activity.
El código completo para la MainActivity.java es:
public class MainActivity extends AppCompatActivity { private Button mBoton; private Context mCont=this; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mBoton = (Button) findViewById(R.id.id_boton); mBoton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(mCont, Segunda.class); startActivity(intent); } }); } }
El código completo del activity_main.xml es:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" tools:context=".MainActivity"> <Button android:id="@+id/id_boton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Iniciar Activity" /> </RelativeLayout>