En este tutorial veremos como pasar parámetros de un activity a otro activity, no hay mucho que decir así que manos a la obra.
Herramientas
– Eclipse Indigo + Android instalado y configurado
Tiempo: 10 minutos
1. Crea un nuevo Application Android Project con la siguiente configuración:
Application Name: Pasanaku
Project Name: Pasanaku
Package Name: com.tutorial.Pasanaku
Activity: Blank Activity
Activity Name: AlfaActivity.java
Layout Name: activity_alfa.xml
2. Agrega un segundo activity al proyecto. NEW -> OTHER -> ANDROID ACTIVITY
Activity Name: BetaActivity.java
Layout Name: activity_beta.xml
Nuestra aplicación esta ahora formado por 2 actividades, Alfa la primera sera de donde se pasen los parámetros y la activity Beta, sera quien los reciba y muestre en pantalla.
3. El código XML de alfa_activity es:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".AlfaActivity" > <EditText android:id="@+id/txtName" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" android:text="@string/strName" > <requestFocus /> </EditText> <EditText android:id="@+id/txtNumber" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="number" android:text="@string/strNumber" /> <Button android:id="@+id/btnGo" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/strButton" /> </LinearLayout>
– El código XML de beta_activity es:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".BetaActivity" > <TextView android:id="@+id/txtResultado" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/strResultado" /> </RelativeLayout>
– Finalmente nuestro archivo String.xml queda de la siguiente manera:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Pasanaku</string> <string name="action_settings">Settings</string> <string name="strName">Paco Mermela</string> <string name="strNumber">8008135</string> <string name="strButton">Pasar parametros</string> <string name="title_activity_beta">Pasanaku 2</string> <string name="strResultado">Resultado</string> </resources>
4. El código de la clase AlfaActivity.java, es quien captura los datos de la interfaz y prepara todo para abrir el segundo layout pasando los parámetros.
package com.tutorial.pasanaku; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class AlfaActivity extends Activity implements OnClickListener{ //variables utilizadas en la aplicacion private EditText txtName; private EditText txtNumber; private Button btnGo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_alfa); //Referencia a los objetos del layout txtName = (EditText) findViewById( R.id.txtName ); txtNumber = (EditText) findViewById( R.id.txtNumber ); btnGo = (Button) findViewById( R.id.btnGo ); btnGo.setOnClickListener( this ); //+++ } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.alfa, menu); return true; } @Override public void onClick(View v) { //Si las cadenas no estan vacias if( txtName.length()>0 && txtNumber.length()>0 ) { //bundle nos permite almacenar valores de la siguiente forma // bundle.putString( clave, valor ); // pudiendo BUNDLE alamcenar valores de todo tipo Bundle bundle = new Bundle(); bundle.putString("Nombre" , txtName.getText().toString() ); try { int numero = Integer.valueOf(txtNumber.getText().toString()); bundle.putInt( "Numero" , numero ); } catch ( NumberFormatException ex ){ //Si el valor ingresado no es un numero INT asigna 0 bundle.putInt( "Numero" , 0 ); } //Intent nos permite enlazar dos actividades Intent intent = new Intent( AlfaActivity.this, BetaActivity.class ); //añadir parametros intent.putExtras( bundle ); //ejuta intent startActivity( intent ); } else { //si no existen valores en los objetos EditText muestra un mensaje Toast toast = Toast.makeText(getBaseContext(),"Debes escribir un Nombre y un número entero",Toast.LENGTH_SHORT ); toast.show(); } } }
– Finalmente la clase BetaActivity.java que corresponde al segundo layout y donde se muestran los parámetros pasados desde el primer layout.
package com.tutorial.pasanaku; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.widget.TextView; public class BetaActivity extends Activity { //Variable utilizadas en la clase private TextView textView; private StringBuilder mensaje = new StringBuilder(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_beta); //Referencia a los objetos del layout textView = (TextView) findViewById( R.id.txtResultado ); //Recupera parametros y los muestra en el TextView Intent intent = getIntent(); Bundle bundle = intent.getExtras(); if ( bundle != null ) { mensaje.append("Nombre: \r\n"); mensaje.append( bundle.getString("Nombre") + "\r\n" ); mensaje.append("Número entero: \r\n"); mensaje.append( bundle.getInt("Numero") ); } textView.setTextSize(33); textView.setText( mensaje ); //++++++++ } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.beta, menu); return true; } }
Ejecutando nuestra aplicación:
Descargate el proyecto completo en Eclipse AQUI
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Java Media Framwork ademas de permitir reproducir archivos multimedia, tambien permite trabajar con dispositivos de capt...
En este tutorial aprenderemos a crear nuestra propia aplicación java para generar códigos QR. ¿Que es un Código QR? «Un...
Un esquema XSD se utiliza para describir y validar la estructura y contenido de los datos de un documento XML. Un esquem...
En esta tercera parte del tutorial crearemos la interfaz de usuario GUI (VISTA) para el sistema de gestión de stock. Tom...
Un JSpinner es un componente swing de java con una caja de texto y un par de botones que nos permiten incrementar y dec...
En un post anterior conocimos que es y como funciona un parámetro de entrada IN en procedimientos almacenados y lenguaje...
Los comentarios estan cerrados
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
Me gusta tu pagina y los projectos que subes exellente muchas gracias
Muchas gracias!!!!!!
ERES UN FENOMENO!! gracias