Cómo utilizar la clase de paquete para pasar datos de cualquier tipo en Android?

En este artículo vamos aprender cómo utilizar class paquete para pasar datos entre las actividades e inicializa class clave de los valores que pasamos?

Bundle se utiliza para mover datos de una actividad a otra. Esto es muy útil cuando se necesita un poco de datos en una actividad que va a venir de otra actividad.

En el siguiente ejemplo, hemos puesto en marcha dos actividades, a saber MainActivity y SecondActivity . En primer lugar, vamos a entender lo que estamos haciendo aquí.

Estamos utilizando el primer diseño para mostrar dos EditTexts dos tienen un aspecto agradable for class nuestro usuario. Tenemos un onClick oyente que se utiliza para invocar la class OnClickListener , que a su vez lleva a los valores de los EditTexts y guardarlos en las cuerdas. Estas cuerdas saber campo1 campo2 y serán los valores de los EditTexts.

Para interface el control de una actividad a otra actividad que necesitamos Intención. Así que para inicializar el objeto for Intención utilizamos esta línea.

 Intent I=new Intent(MainActivity.this, SecondActivity.class);

Fuente de la imagen: https://duythanhcse.files.wordpress.com/2013/04/24_intent_4.png

El primer parámetro al constructor es el contexto de la actividad actual y el segundo parámetro es la class de la actividad a la que queremos ir.

    Bundle b = new Bundle();
b.putString("dataone",data1);
b.putString("datatwo",data2);

Aquí esto está haciendo un objeto de paquete class y también poner los campos de datos que tenemos de las EditTexts.

lo único que queda es poner el paquete con objeto Intención y empezar la actividad.

    I.putExtras(b);
startActivity(I);

En el SecondActivity, tomamos nuestras cuerdas hacia fuera de la Intención y el uso de los valores para cambiar el contenido de TextViews de segundo archivo de diseño.

    Bundle b= getIntent().getExtras();

archivo Java 1

package com.example.hp.demo;
import android.content.Context;
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
{
EditText field1,field2;
Button B;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
field1=(EditText)findViewById(R.id.field1);
field2=(EditText)findViewById(R.id.field2);
B = (Button) findViewById(R.id.button);
B.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data1=field1.getText().toString();
String data2=field2.getText().toString();
Intent I=new Intent(MainActivity.this, SecondActivity.class);
Bundle b = new Bundle();
b.putString("dataone",data1);
b.putString("datatwo",data2);
I.putExtras(b);
startActivity(I);
}});
}
}

archivo Java 2

package com.example.hp.demo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class SecondActivity extends AppCompatActivity {
TextView textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
textview=(TextView)findViewById(R.id.textView);
Bundle b= getIntent().getExtras();
String data1= b.getString("dataone");
String data2= b.getString("datatwo");
textview.setText("Field1 : "+data1+"nField2 : "+data2);
}
}

de archivo XML 1

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout >:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/field1"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:hint="field1" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="phone"
android:ems="10"
android:id="@+id/field2"
android:layout_below="@+id/field1"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:hint="field2" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click"
android:id="@+id/button"
android:layout_below="@+id/field2"
android:layout_alignParentStart="true" />
</RelativeLayout>

de archivo XML 2

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout >:android="http://schemas.android.com/apk/res/android"
>: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="com.example.hp.demo.SecondActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="100dp"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>

Android manifiesta

<?xml version="1.0" encoding="utf-8"?>
<manifest >:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.demo">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity"></activity>
</application>
</manifest>

salida


Deja un comentario

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