2012-04-27 14 views
10

Jestem nowy w Robotium. Utworzyłem okno dialogowe z ostrzeżeniem za pomocą konstruktora okien dialogowych i wywołałem go za pomocą polecenia show. Byłem w stanie aktywować przycisk "ok" domyślnie przy użyciu Robotium i nie mogę zrobić tego samego dla przycisku "anuluj". Ponieważ okno dialogowe nie jest powiązane z identyfikatorem, nie jestem pewien, jak uzyskać identyfikator przycisków. Oto mój kod do okna dialogowegoJak wybrać przycisk, który ma zostać kliknięty na Robotium w oknie dialogowym alertu?

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(); 
} 
}); 

Kod Użyłem do uruchomienia przycisku „OK” w klasie testu jest

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

Jak zrobić to samo za pomocą przycisku „Anuluj”? Z góry dziękuję.

Odpowiedz

9

Wystarczy użyć solo.clickOnButton ("Anuluj");

+0

ya. Naprawiłem to. Dzięki Renas –

22

Właściwie, to proponuję zrobić solo.clickOnView(solo.getView(buttonId)) gdzie przycisk „pozytywne” jest android.R.id.button1, przycisk „Negative” jest android.R.id.button2 i „Neutral” jest android.R.id.button3.

+3

Okazało się to dla mnie o wiele bardziej wiarygodne niż przyjęta odpowiedź. Dzięki. – Eoin

+2

co, jeśli mamy niestandardowe okno dialogowe? – DJhon