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
Utilizando pygame para hacer gráficos en python, se muestra a continuación un sencillo ejemplo de cómo utilizar esta lib[...]
Instagram es una red social y aplicación para subir fotos y videos. Sus usuarios también pueden aplicar efectos fotográf[...]
SQLite. SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente[...]
Cuando Android estaba en sus inicios, varios IDEs (Entorno de Desarrollo Integrado) se disputaban el dominio por su de[...]
JSON es un formato de texto ligero para el intercambio de datos ampliamente usado en los Servicios Web. En este post uti[...]
Tapiti v1.2.0 es un Software Educativo Gratuito multiplataforma para los sistemas operativos Windows y Linux el cual no[...]