Pasar datos de una actividad a otra

  • Respuestas:0
Zephys
  • Posts del Foro: 1

5 feb. 2015 20:44:02 vía Web

Buenas tardes. Estoy programando una app que consta de dos activities. En la principal hay un boton que lanza la segunda activity, y en la segunda un edittext en que introducir datos y un boton que lanza esos datos a la activity principal y los muestra en un Textview. El problema con el que me encuentro es que se genera todo bien, pero al escribir los datos en la segunda activity y pulsar el boton, no se muestra ese dato en la activity principal y no consigo solucionarlo. ¿Alguien sabe como corregirlo? Os dejo el codigo en cuestion.
Xml activity principal

<LinearLayout xmlns:android="........Aqui va el enlace"

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp" >

<Button
   android:id="@+id/btn_enviar"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:onClick="onEnviarClick"
   android:text="Provincia/Calculadora/Mail" />
<TextView 
    android:id="@+id/tvDatosRecibidos"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

Java activity principal
Código:
package com.example.pruebas;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {
TextView tvDatosRecibidos; //TextView donde se mostrára la cadena recibida
String cadenaObtenida;//String donde se guardará la cadena recibida

@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onEnviarClick(View view) {

    Intent intent = new Intent(this, Recibir_datos.class);


    startActivity(intent);

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    tvDatosRecibidos = (TextView)findViewById(R.id.tvDatosRecibidos);//Instanciamos(Creamos el objeto) tvDatosRecibidos

    Bundle recogerDatos = getIntent().getExtras();//Creamos un objeto de tipo Bundle que guardará todos los datos recibidos
    cadenaObtenida = recogerDatos.getString("resultado");//Del Bundle recogerDatos obtenemos la cadena que en la actividad anterior le pusimos de nombre resultado

    tvDatosRecibidos.setText(cadenaObtenida);//mostramos la cadena recibida en el TextView

}
}
Xml activity secundaria
Código:

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<EditText
   android:id="@+id/etCadena"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_gravity="center_horizontal"
   android:hint="Introduce la Provincia"
   android:textSize="20sp"/>

<Button
   android:id="@+id/miBoton"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_gravity="center_horizontal"
   android:onClick="cambiarActividad"
   android:text="Cerrar" />


Java activity secundaria
Código:
package com.example.pruebas;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.EditText;

public class Recibir_datos extends ActionBarActivity {
EditText etCadena; //Cuadro de texto donde se inserta la cadéna
String contenidoCadena;//Aquí guardaremos el contenido del cuadro de texto par

@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recibir_datos);
etCadena = (EditText)findViewById(R.id.etCadena);//Instanciamos etCadena
}

public void cambiarActividad(View v){
    contenidoCadena = etCadena.getText().toString(); //Obtenemos el contenido del cuadro de texto

    Intent i = new Intent(this, MainActivity.class);//Creamos un nuevo intent para llamar a la siguiente actividad
    i.putExtra("resultado", contenidoCadena);//Guardamos el la cadena en el intent y le ponemos de nombre resultado
    startActivity(i);//Ejecutamos la actividad para que muestre la segunda actividad
}

}
Muchas gracias

Contestar