Mostrando entradas con la etiqueta Enviar datos entre actividade. Mostrar todas las entradas
Mostrando entradas con la etiqueta Enviar datos entre actividade. Mostrar todas las entradas

sábado, 7 de noviembre de 2015

Pasar parámetros entre activities a través de los Intents explícitos


¿Que es un Intent en android?

Un Intent se define genéricamente como una "intención" de hacer algo de trabajo. Los Intents encapsulan varios conceptos
Pueden usar los intentos para invocar a otras aplicaciones desde la aplicación. Puede usar los Intent para invocar los componentes internos o externos de su aplicación.

Enviar datos entre actividades en Android Studio

¿Para que es un intent explicito?

Intentos explícitos se utilizan para llamar a un componente específico. Cuando usted sabe qué componente desea iniciar y usted no quiere dar el control libre al usuario sobre qué componente debe usar. Por ejemplo, usted tiene una aplicación que tiene 2 actividades. Activity A y la Activity B. Usted quiere iniciar la actividad B desde la actividad A. En este caso, se define una intención explícita.

Pasos para enviar los datos hacia otros activities:

1- Por ejemplo tenemos datos en la actividad MainActivity y queremos enviar estos datos a otro activity que tiene un nombre VentanaA_Activity.

Vamos a crear la actividad VentanaA_Activity:
Creamos un Blank Activity, para que nos cree la clase .java y su respectivo layout .xml. Según el nombre que le han puesto debe haberles creado los archivos por ejemplo: VentanaA_Activity.java y activity_ventana_a_.xml respectivamente.


Nota: Si usted a creado su archivo java y su archivo xml, sin usar la forma de creación del  Blank Activity que nos brinda android studio. Si usted a decidido crear su clase java y después su archivo xml uno por uno. Tendremos que listar la actividad en el AndroidManifest.xml

AndroidManifest.xml:
<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


        <!--Para que se pueda abrir la actividad VentanaA_Activity-->
        <activity
            android:name=".VentanaA_Activity"
            android:label="@string/title_activity_ventana_a_" >
        </activity>

    </application>

Diseñemos los layout archivos  .xml.

 activity_main.xml:


activity_ventana_a_.xml:




Código del archivo activity_main.xml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<LinearLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Nombre:"
        android:id="@+id/eti_Nombre" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/edi_nombre" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Telefono:"
        android:id="@+id/eti_Telefono" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/edi_telefono" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Enviar"
        android:id="@+id/btnEnviar" />


</LinearLayout>





Código del archivo activity_ventana_a_.xml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<LinearLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".VentanaA_Activity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:id="@+id/eti_nombreA"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:id="@+id/eti_telefonoA"/>

</LinearLayout>




Y por ultimo como siempre lo mas interesante la programación de las Actividades, el código esta comentado para que sea fácil de entender:

El código del MainActivity:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btnEnviar;
    private EditText ediNombre,ediTelefono;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnEnviar=(Button)findViewById(R.id.btnEnviar);
        ediNombre = (EditText) findViewById( R.id.edi_nombre );
        ediTelefono = (EditText) findViewById( R.id.edi_telefono );

        btnEnviar.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {

        Intent explicit_intent;//Declaro el Intent

        //Instanciamos el Intent dandole:
        // el contexto y la clase a la cual nos deseamos dirigir
        explicit_intent = new Intent(this,VentanaA_Activity.class);
        String auxEdiNombre=ediNombre.getText().toString();
        String auxEdiTelefono=ediTelefono.getText().toString();

        explicit_intent.putExtra("nombre",auxEdiNombre);//Guardamos una cadena
        explicit_intent.putExtra("telefono",auxEdiTelefono);//Guardamos un entero

        //lo iniciamos pasandole la intencion, con todos sus parametros guardados
        startActivity(explicit_intent);
    }
}




El código del VentanaA_Activity:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class VentanaA_Activity extends AppCompatActivity {

    TextView etiNombre,etiTelefono;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ventana_a_);
        etiNombre = (TextView) findViewById( R.id.eti_nombreA );
        etiTelefono = (TextView) findViewById( R.id.eti_telefonoA );

        Intent intent=getIntent();
        Bundle extras =intent.getExtras();
        if (extras != null) {//ver si contiene datos
            String datoNombre=(String)extras.get("nombre");//Obtengo el nombre
            String datoTelefono= (String) extras.get("telefono");//Obtengo la edad
           
            etiNombre.setText(datoNombre);
            etiTelefono.setText(datoTelefono);
        }
    }
}

Y al ejecutar debe funcionar correctamente:

Enviar datos entre actividades en Android Studio


Category: articles