2010-08-05 22 views

Respuesta

38

patrón más ellegant a seguir:

public void onClick(View v) { 
switch(v.getId()) 
{ 
case R.id.button_a_id: 
// handle button A click; 
break; 
case R.id.button_b_id: 
// handle button B click; 
break; 
default: 
throw new RuntimeException("Unknow button ID"); 
} 

De esta manera es mucho más simple para depurarlo y se asegura de que no se pierda para manejar cualquier hacer clic.

1

Si por "llevar a cabo el mismo método" usted se refiere a los suyos OnClickListener entonces usted tiene que hacer referencia al parámetro que se le pasa.

public void onClick(View v) { 
    if(v==btnA) { 
     doA(); 
    } else if(v==btnB) { 
     doB(); 
    } 
} 
-1

Ok consiguió la solución

if (yesButton.getId() == ((Button) v).getId()){ 

    // remainingNumber 
} 

else if (noButton.getId() == ((Button) v).getId()) 
{ 
    // it was the second button 
} 
4

O ... simplemente puede poner un android: onClick = "foo" en el código xml del botón , y definir un método en java con la firma. En el interior del foo método , obtener el ID y compararlo con el que necesita

public void foo(View v){ 

if (v.getId() == R.id.yourButton){ 

} 

else if (v.getId() == R.id.nextButton){ 

} 

} 
4

tengo 10 botones que realizan el mismo método updateText(), he utilizado este código para obtener el texto del botón hecho clic:

public void updateText(View v){ 
    Button btn = (Button) findViewById(v.getId()); 
    String text = btn.getText().toString(); 
} 
Cuestiones relacionadas