PDA

Ver la Versión Completa : Duda, pasar una variable a otro metodo de otra clase.


cabama
30/01/13, 17:31:08
Hola muy buenas, soy nuevo en la programación y tengo una duda, espero que me la resuelvan jajaja.

Estoy haciendo un programa android que en el Layout o Ventana principal esta formado por:

Un TextView, que tiene que funcionar como contador.
Un botón que lleva a otra ventana o Layout.

En la otra ventana, tenemos otro botón, que al pulsarlo, lo que quiero es aumentar, el contador de la ventana principal.



Lo que he intentado hacer es que en el botón de la ventana secundaria, cuando se pulse realice el siguiente método:

public void pulsado (View view){
MainActivity suma = new MainActivity();
suma.sumar_contador(1);
}


Mientras que en la clase principal tengo:

public void sumar_contador(int contados){

contados_S = String.valueOf(contados);
contador.setText(contados_S);

}


El resultado es que cuando pulso un botón, sale un error en la aplicación y se cierra.

También he probado con Intent y putextra, pero tampoco me sale, y cuando inicio la aplicación se cierra con error.

Muchas gracias.

mocelet
30/01/13, 17:52:08
Como decía mi profe de álgebra (FMT1 ;)), hacer un new Activity() es un "error de concepto grave".

Te sugiero que empieces siguiendo un tutorial para adquirir una base (tanto de Java como de Android) y tener claros conceptos de objetos así como el ciclo de vida de una aplicación en Android, elementos de la interfaz de usuario, etc.

El libro Beginning Android de APress está muy bien y se comentó hace poco por aquí que había una traducción al español de Anaya creo.

cabama
30/01/13, 19:53:58
Vale y como podría pasar la variable a otra clase Activity ?

mocelet
30/01/13, 19:58:09
http://jonsegador.com/2012/02/paso-de-datos-variables-entre-actividades-android/

cabama
30/01/13, 20:18:31
Vale ! Muchas gracias :dios: !

tanojaja
30/01/13, 21:37:26
La forma en que se "comunican" las activitidades es por medio de intents, no te va a funcionar de otra manera.

tanojaja
30/01/13, 21:49:38
Te amplío la info.

Intent
Un intent es el elemento básico de comunicación entre los distintos componentes Android
que hemos descrito anteriormente. Se pueden entender como los mensajes o peticiones que
son enviados entre los distintos componentes de una aplicación o entre distintas aplicaciones.
Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar un servicio,
enviar un mensaje broadcast, iniciar otra aplicación, etc.

ejemplo: En la activity "HolaUsuario" se crea el siguiente código

btnHola.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(HolaUsuario.this, FrmMensaje.class);
Bundle bundle = new Bundle();
bundle.putString("NOMBRE", txtNombre.getText().toString());
intent.putExtras(bundle);
startActivity(intent);
}
});

En otra clase FrmMensaje:
public class FrmMensaje extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.frmmensaje);
TextView txtMensaje = (TextView)findViewById(R.id.TxtMensaje);
Bundle bundle = getIntent().getExtras();
txtMensaje.setText("Hola " + bundle.getString("NOMBRE"));
}
}

Son 2 clases, con 2 layouts diferentes.