Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 05/02/15, 20:19:32
Array

[xs_avatar]
Zephys Zephys no está en línea
Usuario poco activo
 
Fecha de registro: nov 2011
Localización: Vigo
Mensajes: 27
Modelo de smartphone: Xperia SP
Tu operador: Vodafone
Pasar datos de una activity a otra

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
Código:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   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"/>
    
 
</LinearLayout>
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:
<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: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" />


</LinearLayout>
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
    }
	
}
Responder Con Cita


  #2  
Viejo 05/02/15, 20:54:06
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

En la actividad principal tienes que llamar a startActivityForResult
Y en la secundaria, en vez de startActivity, tienes que llamar a setResult. Además, el Intent de la secundaria es simplemente new Intent(), porque no es para lanzar ninguna actividad.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #3  
Viejo 05/02/15, 23:23:56
Array

[xs_avatar]
Zephys Zephys no está en línea
Usuario poco activo
 
Fecha de registro: nov 2011
Localización: Vigo
Mensajes: 27
Modelo de smartphone: Xperia SP
Tu operador: Vodafone
Muchas gracias, he conseguido avanzar un poco, pero me encuentro el mismo problema, no consigo que pase la informacion a la primera activity
Responder Con Cita
  #4  
Viejo 17/02/15, 16:31:58
Array

[xs_avatar]
carliquiss carliquiss no está en línea
DroidMaster en Youtube
 
Fecha de registro: dic 2014
Mensajes: 1,730
Modelo de smartphone: Mi Pad 4 / Mi Pad 5 / Lenovo Legion Y700
Tu operador: Movistar
Has probado con los bundle? No soy ningún entendido pero me parece que te pueden servir justo para eso
Responder Con Cita
  #5  
Viejo 24/02/15, 15:44:02
Array

[xs_avatar]
Zephys Zephys no está en línea
Usuario poco activo
 
Fecha de registro: nov 2011
Localización: Vigo
Mensajes: 27
Modelo de smartphone: Xperia SP
Tu operador: Vodafone
He conseguido terminar el codigo, aquí os lo dejo para aquel que necesite ayuda:
Código:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   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" />
    
    <Button
       android:id="@+id/btn_provincia"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:onClick="onProvinciaClick"
       android:text="Obtener Provincia" />
  
    
 
</LinearLayout>
Código:
package com.example.tarea_pmdm03;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class Tarea_PMDM03 extends ActionBarActivity {
	
	public final static String NOME = "com.example.NOME";
    private static final int COD_PETICION = 33;
    
    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_tarea__pmdm03);
		
		Button boton = (Button) findViewById(R.id.btn_enviar);
        boton.setOnLongClickListener(new OnLongClickListener() {
                @override
                public boolean onLongClick(View v) {
                        // TODO Auto-generated method stub
                	Intent intent = new Intent();
                    intent.setClassName("com.android.calculator2", "com.android.calculator2.Calculator");
     
                    startActivity(intent);
                        return true;
                }
        });
	}

 @override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.tarea__pmdm03, menu);
		return true;
	}

	public void onEnviarClick(View view) {

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

        
        startActivityForResult(intent, COD_PETICION);

}
	


 @SuppressLint("NewApi")
	public void onProvinciaClick(View v) { 
		Intent intent=getIntent();
		String datos= "Su Provincia es: "+intent.getExtras().getString("PROVINCIA");
		Toast.makeText(this,datos, Toast.LENGTH_LONG).show();
	}

public void finish() {
        super.finish();
        Toast.makeText(this, "Gracias por probar la aplicación", Toast.LENGTH_SHORT).show();
}

}
Activty secundaria:
Código:
<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:orientation="vertical" >

    <EditText
       android:id="@+id/etCadena"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center_horizontal"
       android:inputType="text|textCapWords"
       android:maxLength="15"
       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="onCerrarClick"
       android:text="Cerrar" />


</LinearLayout>
Código:
package com.example.tarea_pmdm03;


import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;

public class Provincia extends ActionBarActivity {
	public static final String PROVINCIA = null;
	String Forma_Pechar_Activity;
	EditText etCadena; //Cuadro de texto donde se inserta la cadéna
    String contenidoCadena;//Aquí guardaremos el contenido del cuadro de texto para pasarselo a la siguiente actividad


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

 @override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.provincia, menu);
		return true;
	}

 @override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
	public void onCerrarClick(View view){
		EditText provincia=(EditText) findViewById(R.id.etCadena);
		Intent intent =new Intent(Provincia.this, Tarea_PMDM03.class);
		intent.putExtra("PROVINCIA", provincia.getText().toString());
		startActivity(intent);
		finish();
		super.finish();
		}

}
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 20:43:17 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /