Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2013, 15:06
nh2006
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 18 años
Puntos: 3
Nueva sintáxis con Android Studio-Click en botón

Hola,

Sigo con mis dudas con este nuevo IDE, vaya forma de fastidiarme o será que a lo mejor no lo puedo usar, el punto es el siguiente, quiero controlar el evento clic de un botón en Eclipse yo solía trabajarlo así:

Código Java:
Ver original
  1. //Implementamos la  interfaz OnClickListener
  2. public class MainActivity extends Activity implements OnClickListener{
  3.     /** Called when the activity is first created. */
  4.     @Override
  5.     public void onCreate(Bundle savedInstanceState) {
  6.         super.onCreate(savedInstanceState);
  7.         setContentView(R.layout.main);
  8.  
  9.         //Relacionamos el boton del layout con botón java.
  10.         Button boton = (Button)findViewById(R.id.btnBoton);
  11.         //Lo ponemos a escuchar para cuando sea pulsado
  12.         boton.setOnClickListener(this);
  13.  
  14.     }
  15.  
  16.     //Aquí se irá administrando cuando un botón es pulsado
  17.     @Override
  18.     public void onClick(View v) {
  19.         /*Comprobamos a que id pertenece el id del botón pulsado, en este caso como solo tenemos 1
  20.         siempre va a ser el mismo pero se puede dar el caso de que haya más de un botón, entonces aquí se controlaría que botón se ha pulsado.
  21.         */
  22.         switch(v.getId()){
  23.             case R.id.btnBoton://Si el id del botón pulsado se corresponde con el id que tenemos aquí entraría dentro del case.
  24.                 //Aquí va el código que se va a ejecutar cuando se pulse el botón.
  25.  
  26.         }                
  27.     }  
  28. }

Pero ahora este nuevo IDE, tengo un código mas o menos así:
Código Java:
Ver original
  1. import android.content.DialogInterface;
  2. import android.os.Bundle;
  3. import android.app.Activity;
  4.  
  5. import android.view.View;
  6. import android.widget.Button;
  7. import android.widget.EditText;
  8. import android.widget.Toast;
  9.  
  10. public class MainActivity extends Activity implements DialogInterface.OnClickListener {
  11.  
  12.     EditText et;
  13.     Button bt;
  14.  
  15.     @Override
  16.     protected void onCreate(Bundle savedInstanceState) {
  17.         super.onCreate(savedInstanceState);
  18.         setContentView(R.layout.activity_main);
  19.  
  20.         et=(EditText)findViewById(R.id.et);
  21.         bt=(Button)findViewById(R.id.bt);
  22.  
  23.         bt.setOnClickListener((View.OnClickListener) this);
  24.  
  25.     }
  26.  
  27.     //@Override
  28.     public void onClick(DialogInterface dialogInterface, int i) {
  29.        
  30.     }
  31. }

Como primer cambioa a la hora de hacer implements hace esto: implements DialogInterface.OnClickListener.

Otra cuestión que el método onClick, antes la firma era onClick(View v), ahora el IDE me lo genera así: onClick(DialogInterface dialogInterface, int i).

Otra cuestión es antes hacía bt.setOnClickListener(this), ahora el nuevo IDE lo tengo que hacer así: bt.setOnClickListener((View.OnClickListener) this);, lo cual cuando lo ejecuto hace que termine la aplicación.

Me pueden ayudar por favor.

Gracias desde ya