Esto esta apuntado a gente que se esta iniciando en el mundo de programación en android.
Cuando nos enseñaban android por primera vez, nos muestran que para capturar eventos debemos implementar OnClickListener, luego hacer la funcion onClick(View v) y dentro de ella hacer lo que se haga con el botón.. pero ¿que pasa si tenes mas de un botón? hay que degenerar el código con tantos if como botones tenga. O un Switch si son muchísimos.
Esta practica que les pasare a explicar hay que hacerlo para cada botón que vinculemos con el layout.
Así es como nos enseñan por primera vez
Y así es deberia;
public class LoginActividad extends Activity implements OnClickListener{
TextView tvUsuarioRegistro;
EditText etNombre, etPass;
Button bEntrar;
Usuario usuario;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ini_login);
tvUsuarioRegistro = (TextView) findViewById(R.id.tvUsuarioRegistroClic);
etNombre = (EditText) findViewById(R.id.etUsuarioNombre);
etPass = (EditText) findViewById(R.id.etUsuarioPass);
bEntrar = (Button) findViewById(R.id.btUsuarioEntrar);
bEntrar.setOnClickListener(this);
tvUsuarioRegistro.setOnClickListener(this);
@Override
public void onClick(View v) {
if(v.getId()==findViewById(R.id.btUsuarioEntrar).getId()){
//Aqui va lo que el boton debe hacer, una vez presionado
}
if(v.getId()==findViewById(R.id.tvUsuarioRegistroClic).getId()){
Intent actividad = new Intent(LoginActividad.this, RegistroActividad.class);
startActivity(actividad);
}
}
}
}
Y así es deberia;
public class LoginActividad extends Activity {
TextView tvUsuarioRegistro;
EditText etNombre, etPass;
Button bEntrar;
Usuario usuario;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ini_login);
tvUsuarioRegistro = (TextView) findViewById(R.id.tvUsuarioRegistroClic);
etNombre = (EditText) findViewById(R.id.etUsuarioNombre);
etPass = (EditText) findViewById(R.id.etUsuarioPass);
bEntrar = (Button) findViewById(R.id.btUsuarioEntrar);
bEntrar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//Aqui va lo que el boton debe hacer, una vez presionado
}
});
tvUsuarioRegistro.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent actividad = new Intent(LoginActividad.this, RegistroActividad.class);
startActivity(actividad);
}
});
}
}
No es que sea mas sencillo, ni nos ahorraremos de escribir, pero la claridad y prolijidad suma a la hora de mantener un código
Espero que les sirva o no, dependerá de como se sienta mas cómodo cada uno.
Un saludo
No hay comentarios:
Publicar un comentario