Foros del Web » Programando para Internet » Android »

[SOLUCIONADO] pasar datos a dos clases

Estas en el tema de pasar datos a dos clases en el foro de Android en Foros del Web. estoy empezando con esto y tengo una pregunta muy básica, tengo tres clases, una me pide el nombre,la otra me pide los apellidos y la ...
  #1 (permalink)  
Antiguo 09/01/2015, 07:33
dr4
 
Fecha de Ingreso: noviembre-2014
Mensajes: 28
Antigüedad: 10 años, 1 mes
Puntos: 0
pasar datos a dos clases

estoy empezando con esto y tengo una pregunta muy básica, tengo tres clases, una me pide el nombre,la otra me pide los apellidos y la ultima me enseña el nombre y los apellidos. Yo quería enviar el string "nombre" directamente a la ultima pantalla pero no fui capaz, en lugar de eso tengo que enviar el string "nombre" a "apellidos" y luego de apellidos mandar "nombre" y "apellidos" (teniendo que mandar el string "nombre" dos veces)

resumen de lo que quiero: escribir el nombre, enviar ese dato , escribir apellido, enviar ese dato , y que la ultima pantalla me lo enseñe todo

Nombre:

Código:
package com.example.holamundo3;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;


public class HolaMundo3 extends Activity {
int prueba;
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);



    }

    public void btn_hola(View v){

        final EditText txtNombre=(EditText)findViewById(R.id.TxtNombre);

        Intent i=new Intent();
        i.putExtra("Nombre",txtNombre.getText().toString());
        i.setClass(HolaMundo3.this,Saludo.class);

        startActivity(i);

    }
}




Apellidos:

Código:
package com.example.holamundo3;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

/**
 * Created by Paulo on 07/01/2015.
 */
public class Saludo extends Activity {
    String nombre;
    public void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.saludo);

    }

        public void botonap(View v){


       EditText apellidos=(EditText) findViewById(R.id.Textapellidos);

       Intent b=new Intent();
        Bundle c=this.getIntent().getExtras();
        b.putExtra("apellidos",apellidos.getText().toString());
       nombre=c.getString("Nombre");
        b.putExtra("nombre",nombre);



        b.setClass(Saludo.this,Saludo2.class);


            startActivity(b);

    }}


Pantalla que lo muestra:

Código:
package com.example.holamundo3;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;


public class HolaMundo3 extends Activity {
int prueba;
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);



    }

    public void btn_hola(View v){

        final EditText txtNombre=(EditText)findViewById(R.id.TxtNombre);

        Intent i=new Intent();
        i.putExtra("Nombre",txtNombre.getText().toString());
        i.setClass(HolaMundo3.this,Saludo.class);

        startActivity(i);

    }
}
  #2 (permalink)  
Antiguo 10/01/2015, 03:30
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 7 meses
Puntos: 155
Respuesta: pasar datos a dos clases

...bien tenes muchassss formas diferentes de hacer esto...podes usar Extras, Bundle, SharedPreferences, etc..

...pero puntualmente para este ejemplo básico, podes usar simplemente variables de clase para almacenar los datos..

...la idea seria asi:

Tenes 3 clases, Nombre, Apellido e Imprimir...en Nombre y Apellido tenes un EditText y un Button. En el evento onClick en Nombre almacenas el valor del EditText en una variable de clase, en esto caso es Imprimir.NOMBRE_TMP. En el evento onClick en Apellido almacenas el valor del EditText en una variable de clase, en esto caso es Imprimir.APELLIDO_TMP. Finalemente en la clase Apellido, tenes dos TextView al que le definis como texto los valores de las variables de clase NOMBRE_TMP y APELLIDO_TMP...

Clase Nombre:

Código Java:
Ver original
  1. public class Nombre extends Activity implements OnClickListener {
  2.     private EditText text;
  3.     private Intent intent;
  4.    
  5.     @Override
  6.     protected void onCreate(Bundle savedInstanceState) {
  7.         super.onCreate(savedInstanceState);
  8.        
  9.         LinearLayout layout = new LinearLayout(this);
  10.         layout.setOrientation(LinearLayout.VERTICAL);
  11.        
  12.         text = new EditText(this);
  13.        
  14.         Button btn = new Button(this);
  15.         btn.setText("Enviar");
  16.        
  17.         layout.addView(text);
  18.         layout.addView(btn);
  19.        
  20.         this.setContentView(layout);
  21.        
  22.         btn.setOnClickListener(this);
  23.        
  24.        
  25.     }
  26.  
  27.     @Override
  28.     public void onClick(View v) {
  29.         Imprimir.NOMBRE_TMP = text.getText().toString();
  30.         intent = new Intent(this, Apellido.class);
  31.         startActivity(intent);
  32.     }
  33.        
  34. }


Clase Apellido:

Código Java:
Ver original
  1. public class Apellido extends Activity implements OnClickListener {
  2.     private EditText text;
  3.     private Intent intent;
  4.    
  5.     @Override
  6.     protected void onCreate(Bundle savedInstanceState) {
  7.         super.onCreate(savedInstanceState);
  8.        
  9.         LinearLayout layout = new LinearLayout(this);
  10.         layout.setOrientation(LinearLayout.VERTICAL);
  11.        
  12.         text = new EditText(this);
  13.        
  14.         Button btn = new Button(this);
  15.         btn.setText("Enviar");
  16.        
  17.         layout.addView(text);
  18.         layout.addView(btn);
  19.        
  20.         this.setContentView(layout);
  21.        
  22.         btn.setOnClickListener(this);
  23.        
  24.        
  25.     }
  26.  
  27.     @Override
  28.     public void onClick(View v) {
  29.         Imprimir.APELLIDO_TMP = text.getText().toString();
  30.         intent = new Intent(this, Imprimir.class);
  31.         startActivity(intent);
  32.     }
  33.    
  34.    
  35. }


Clase Imprimir:

Código Java:
Ver original
  1. public class Imprimir extends Activity {
  2.     public static String NOMBRE_TMP;
  3.     public static String APELLIDO_TMP;
  4.    
  5.     private TextView nombre;
  6.     private TextView apellido;
  7.    
  8.     @Override
  9.     protected void onCreate(Bundle savedInstanceState) {
  10.         super.onCreate(savedInstanceState);
  11.        
  12.         LinearLayout layout = new LinearLayout(this);
  13.         layout.setOrientation(LinearLayout.VERTICAL);
  14.        
  15.         nombre = new TextView(this);
  16.         nombre.setText(NOMBRE_TMP);
  17.        
  18.         apellido = new TextView(this); 
  19.         apellido.setText(APELLIDO_TMP);
  20.        
  21.         layout.addView(nombre);
  22.         layout.addView(apellido);
  23.        
  24.         this.setContentView(layout);
  25.        
  26.        
  27.     }
  28.    
  29. }
  #3 (permalink)  
Antiguo 10/01/2015, 06:52
dr4
 
Fecha de Ingreso: noviembre-2014
Mensajes: 28
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: pasar datos a dos clases

perfecto, gracias por tu tiempo

Etiquetas: activity, androi, app, clases, view
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:20.