2012-04-27 10 views
10

Soy nuevo en Robotium. Creé un cuadro de diálogo de alerta usando el generador de diálogo y lo llamé usando el comando show. Pude activar el botón 'ok' de forma predeterminada usando Robotium y no puedo hacer lo mismo con el botón 'cancelar'. Como el cuadro de diálogo no está asociado con una identificación, no estoy seguro de cómo obtener la identificación de los botones. Aquí está mi código de la caja de diálogo¿Cómo seleccionar qué botón hacer clic en Robotium para un diálogo de alerta?

alertDialogBuilder 
.setMessage("Please enter only numbers without any spaces") 
.setCancelable(true) 
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int id) { 
dialog.cancel(); 
} 
}) 
.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int id) { 
dialog.cancel(); 
} 
}); 

El código que utiliza para desencadenar el botón 'OK' en la clase de prueba es

solo.getCurrentActivity().runOnUiThread(new Runnable() { 
public void run() { 
solo.getCurrentActivity().getCurrentFocus().requestFocus(); 
} 
}); 
this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); 

Cómo hacer lo mismo con el botón 'cancelar'? Gracias por adelantado.

Respuesta

9

Simplemente use solo.clickOnButton ("Cancelar");

+0

ya. lo había arreglado Gracias Renas –

22

En realidad, yo sugeriría que hacer solo.clickOnView(solo.getView(buttonId)) en el botón 'positiva' es android.R.id.button1, el botón 'Negativo' es android.R.id.button2 y 'neutral' es android.R.id.button3.

+3

Esto ha demostrado ser mucho más confiable para mí que la respuesta aceptada. Gracias. – Eoin

+2

¿y si tenemos un diálogo personalizado? – DJhon

Cuestiones relacionadas