- Posts del Foro: 1
5 feb. 2015 20:44:02 vía Web
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
Contenido editorial recomendado
Con su consentimiento, aquí se cargan contenidos externos.
Al hacer clic en el botón anterior, acepta que se le muestren contenidos externos. En el proceso pueden transmitirse datos personales a terceros proveedores. Encontrará más información al respecto en nuestro Política de privacidad.